Compare commits
2 commits
edge
...
firefox-es
Author | SHA1 | Date | |
---|---|---|---|
45067e03b0 | |||
04ab8b4b08 |
20 changed files with 1884 additions and 0 deletions
665
user/firefox-esr/APKBUILD
Normal file
665
user/firefox-esr/APKBUILD
Normal file
|
@ -0,0 +1,665 @@
|
|||
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
|
||||
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
|
||||
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
|
||||
pkgname=firefox-esr
|
||||
pkgver=102.10.0
|
||||
# Date of release, YY-MM-DD for metainfo file (see package())
|
||||
_releasedate=2023-04-11
|
||||
pkgrel=1
|
||||
pkgdesc="Firefox web browser - Extended Support Release"
|
||||
url="https://www.mozilla.org/en-US/firefox/organizations/"
|
||||
# s390x and riscv64: blocked by rust and cargo
|
||||
# armhf: build failure on armhf due to wasm
|
||||
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"
|
||||
install="$pkgname.post-upgrade"
|
||||
depends="
|
||||
ffmpeg5-libavcodec
|
||||
"
|
||||
makedepends="
|
||||
alsa-lib-dev
|
||||
automake
|
||||
bsd-compat-headers
|
||||
cargo
|
||||
cbindgen
|
||||
clang15-dev
|
||||
dbus-glib-dev
|
||||
gettext
|
||||
gtk+3.0-dev
|
||||
hunspell-dev
|
||||
icu-dev>=69.1
|
||||
libevent-dev
|
||||
libffi-dev
|
||||
libjpeg-turbo-dev
|
||||
libnotify-dev
|
||||
libogg-dev
|
||||
libtheora-dev
|
||||
libtool
|
||||
libvorbis-dev
|
||||
libvpx-dev
|
||||
libwebp-dev
|
||||
libxcomposite-dev
|
||||
libxt-dev
|
||||
lld
|
||||
llvm-dev
|
||||
m4
|
||||
mesa-dev
|
||||
nasm
|
||||
nodejs
|
||||
nspr-dev
|
||||
nss-dev
|
||||
pipewire-dev
|
||||
pulseaudio-dev
|
||||
py3-psutil
|
||||
py3-zstandard
|
||||
python3
|
||||
sed
|
||||
wasi-sdk
|
||||
wireless-tools-dev
|
||||
yasm
|
||||
zip
|
||||
"
|
||||
|
||||
source="https://ftp.mozilla.org/pub/firefox/releases/${pkgver}esr/source/firefox-${pkgver}esr.source.tar.xz
|
||||
allow-custom-rust-vendor.patch
|
||||
avoid-redefinition.patch
|
||||
disable-moz-stackwalk.patch
|
||||
esr-metainfo.patch
|
||||
fix-neon-aom.patch
|
||||
fix-fortify-system-wrappers.patch
|
||||
fix-rust-target.patch
|
||||
fix-webrtc-glibcisms.patch
|
||||
mallinfo.patch
|
||||
python-deps.patch
|
||||
sandbox-fork.patch
|
||||
sandbox-largefile.patch
|
||||
sandbox-sched_setscheduler.patch
|
||||
zstandard.patch
|
||||
|
||||
stab.h
|
||||
|
||||
firefox.desktop
|
||||
mozilla-location.keys
|
||||
vendor-prefs.js
|
||||
"
|
||||
|
||||
builddir="$srcdir/firefox-$pkgver"
|
||||
_mozappdir=/usr/lib/firefox-esr
|
||||
|
||||
# help our shared-object scanner to find the libs
|
||||
ldpath="$_mozappdir"
|
||||
|
||||
# secfixes:
|
||||
# 102.1.0-r0:
|
||||
# - CVE-2022-2505
|
||||
# - CVE-2022-36314
|
||||
# - CVE-2022-36318
|
||||
# - CVE-2022-36319
|
||||
# 91.11.0-r0:
|
||||
# - CVE-2022-2200
|
||||
# - CVE-2022-31744
|
||||
# - CVE-2022-34468
|
||||
# - CVE-2022-34470
|
||||
# - CVE-2022-34472
|
||||
# - CVE-2022-34478
|
||||
# - CVE-2022-34479
|
||||
# - CVE-2022-34481
|
||||
# - CVE-2022-34484
|
||||
# 91.10.0-r0:
|
||||
# - CVE-2022-31736
|
||||
# - CVE-2022-31737
|
||||
# - CVE-2022-31738
|
||||
# - CVE-2022-31739
|
||||
# - CVE-2022-31740
|
||||
# - CVE-2022-31741
|
||||
# - CVE-2022-31742
|
||||
# - CVE-2022-31747
|
||||
# 91.9.1-r0:
|
||||
# - CVE-2022-1529
|
||||
# - CVE-2022-1802
|
||||
# 91.9.0-r0:
|
||||
# - CVE-2022-29909
|
||||
# - CVE-2022-29911
|
||||
# - CVE-2022-29912
|
||||
# - CVE-2022-29914
|
||||
# - CVE-2022-29916
|
||||
# - CVE-2022-29917
|
||||
# 91.8.0-r0:
|
||||
# - CVE-2022-1097
|
||||
# - CVE-2022-1196
|
||||
# - CVE-2022-24713
|
||||
# - CVE-2022-28281
|
||||
# - CVE-2022-28282
|
||||
# - CVE-2022-28285
|
||||
# - CVE-2022-28286
|
||||
# - CVE-2022-28289
|
||||
# 91.7.0-r0:
|
||||
# - CVE-2022-26381
|
||||
# - CVE-2022-26383
|
||||
# - CVE-2022-26384
|
||||
# - CVE-2022-26386
|
||||
# - CVE-2022-26387
|
||||
# 91.6.1-r0:
|
||||
# - CVE-2022-26485
|
||||
# - CVE-2022-26486
|
||||
# 91.6.0-r0:
|
||||
# - CVE-2022-22754
|
||||
# - CVE-2022-22756
|
||||
# - CVE-2022-22759
|
||||
# - CVE-2022-22760
|
||||
# - CVE-2022-22761
|
||||
# - CVE-2022-22763
|
||||
# - CVE-2022-22764
|
||||
# 91.5.0-r0:
|
||||
# - CVE-2021-4140
|
||||
# - 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-22751
|
||||
# 91.4.0-r0:
|
||||
# - CVE-2021-43536
|
||||
# - CVE-2021-43537
|
||||
# - CVE-2021-43538
|
||||
# - CVE-2021-43539
|
||||
# - CVE-2021-43541
|
||||
# - CVE-2021-43542
|
||||
# - CVE-2021-43543
|
||||
# - CVE-2021-43545
|
||||
# - CVE-2021-43546
|
||||
# 91.3.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
|
||||
# 91.2.0-r0:
|
||||
# - CVE-2021-32810
|
||||
# - CVE-2021-38492
|
||||
# - CVE-2021-38493
|
||||
# - CVE-2021-38495
|
||||
# - CVE-2021-38496
|
||||
# - CVE-2021-38497
|
||||
# - CVE-2021-38498
|
||||
# - CVE-2021-38500
|
||||
# - CVE-2021-38501
|
||||
# 78.13.0-r0:
|
||||
# - CVE-2021-29980
|
||||
# - CVE-2021-29984
|
||||
# - CVE-2021-29985
|
||||
# - CVE-2021-29986
|
||||
# - CVE-2021-29988
|
||||
# - CVE-2021-29989
|
||||
# 78.12.0-r0:
|
||||
# - CVE-2021-29970
|
||||
# - CVE-2021-29976
|
||||
# - CVE-2021-30547
|
||||
# 78.11.0-r0:
|
||||
# - CVE-2021-29967
|
||||
# 78.10.0-r0:
|
||||
# - CVE-2021-23961
|
||||
# - CVE-2021-23994
|
||||
# - CVE-2021-23995
|
||||
# - CVE-2021-23998
|
||||
# - CVE-2021-23999
|
||||
# - CVE-2021-24002
|
||||
# - CVE-2021-29945
|
||||
# - CVE-2021-29946
|
||||
# 78.9.0-r0:
|
||||
# - CVE-2021-23981
|
||||
# - CVE-2021-23982
|
||||
# - CVE-2021-23984
|
||||
# - CVE-2021-23987
|
||||
# 78.8.0-r0:
|
||||
# - CVE-2021-23968
|
||||
# - CVE-2021-23969
|
||||
# - CVE-2021-23973
|
||||
# - CVE-2021-23978
|
||||
# 78.7.0-r0:
|
||||
# - CVE-2020-26976
|
||||
# - CVE-2021-23953
|
||||
# - CVE-2021-23954
|
||||
# - CVE-2021-23960
|
||||
# - CVE-2021-23964
|
||||
# 78.6.1-r0:
|
||||
# - CVE-2020-16044
|
||||
# 78.6.0-r0:
|
||||
# - CVE-2020-16042
|
||||
# - CVE-2020-26971
|
||||
# - CVE-2020-26973
|
||||
# - CVE-2020-26974
|
||||
# - CVE-2020-26978
|
||||
# - CVE-2020-35111
|
||||
# - CVE-2020-35112
|
||||
# - CVE-2020-35113
|
||||
# 78.5.0-r0:
|
||||
# - CVE-2020-15683
|
||||
# - CVE-2020-15969
|
||||
# - CVE-2020-15999
|
||||
# - CVE-2020-16012
|
||||
# - CVE-2020-26950
|
||||
# - CVE-2020-26951
|
||||
# - CVE-2020-26953
|
||||
# - CVE-2020-26956
|
||||
# - CVE-2020-26958
|
||||
# - CVE-2020-26959
|
||||
# - CVE-2020-26960
|
||||
# - CVE-2020-26961
|
||||
# - CVE-2020-26965
|
||||
# - CVE-2020-26966
|
||||
# - CVE-2020-26968
|
||||
# 78.3.0-r0:
|
||||
# - CVE-2020-15673
|
||||
# - CVE-2020-15676
|
||||
# - CVE-2020-15677
|
||||
# - CVE-2020-15678
|
||||
# 78.2.0-r0:
|
||||
# - CVE-2020-15663
|
||||
# - CVE-2020-15664
|
||||
# - CVE-2020-15670
|
||||
# 78.1.0-r0:
|
||||
# - CVE-2020-15652
|
||||
# - CVE-2020-15653
|
||||
# - CVE-2020-15654
|
||||
# - CVE-2020-15655
|
||||
# - CVE-2020-15656
|
||||
# - CVE-2020-15657
|
||||
# - CVE-2020-15658
|
||||
# - CVE-2020-15659
|
||||
# - CVE-2020-6463
|
||||
# - CVE-2020-6514
|
||||
# 68.10.0-r0:
|
||||
# - CVE-2020-12417
|
||||
# - CVE-2020-12418
|
||||
# - CVE-2020-12419
|
||||
# - CVE-2020-12420
|
||||
# - CVE-2020-12421
|
||||
# 68.9.0-r0:
|
||||
# - CVE-2020-12399
|
||||
# - CVE-2020-12405
|
||||
# - CVE-2020-12406
|
||||
# - CVE-2020-12410
|
||||
# 68.8.0-r0:
|
||||
# - CVE-2020-12387
|
||||
# - CVE-2020-12388
|
||||
# - CVE-2020-12389
|
||||
# - CVE-2020-12392
|
||||
# - CVE-2020-12393
|
||||
# - CVE-2020-12395
|
||||
# - CVE-2020-6831
|
||||
# 68.7.0-r0:
|
||||
# - CVE-2020-6821
|
||||
# - CVE-2020-6822
|
||||
# - CVE-2020-6825
|
||||
# 68.6.1-r0:
|
||||
# - CVE-2020-6819
|
||||
# - CVE-2020-6820
|
||||
# 68.6.0-r0:
|
||||
# - CVE-2019-20503
|
||||
# - CVE-2020-6805
|
||||
# - CVE-2020-6806
|
||||
# - CVE-2020-6807
|
||||
# - CVE-2020-6811
|
||||
# - CVE-2020-6812
|
||||
# - CVE-2020-6814
|
||||
# 68.5.0-r0:
|
||||
# - CVE-2020-6796
|
||||
# - CVE-2020-6797
|
||||
# - CVE-2020-6798
|
||||
# - CVE-2020-6799
|
||||
# - CVE-2020-6800
|
||||
# 68.4.1-r0:
|
||||
# - CVE-2019-17016
|
||||
# - CVE-2019-17022
|
||||
# - CVE-2019-17024
|
||||
# - CVE-2019-17026
|
||||
# 68.3.0-r0:
|
||||
# - CVE-2019-17005
|
||||
# - CVE-2019-17008
|
||||
# - CVE-2019-17009
|
||||
# - CVE-2019-17010
|
||||
# - CVE-2019-17011
|
||||
# - CVE-2019-17012
|
||||
# 68.2.0-r0:
|
||||
# - CVE-2019-11757
|
||||
# - CVE-2019-11758
|
||||
# - CVE-2019-11759
|
||||
# - CVE-2019-11760
|
||||
# - CVE-2019-11761
|
||||
# - CVE-2019-11762
|
||||
# - CVE-2019-11763
|
||||
# - CVE-2019-11764
|
||||
# - CVE-2019-15903
|
||||
# 68.1.0-r0:
|
||||
# - CVE-2019-9812
|
||||
# - CVE-2019-11740
|
||||
# - CVE-2019-11742
|
||||
# - CVE-2019-11743
|
||||
# - CVE-2019-11744
|
||||
# - CVE-2019-11746
|
||||
# - CVE-2019-11752
|
||||
# 68.0.2-r0:
|
||||
# - CVE-2019-11733
|
||||
# 68.0-r0:
|
||||
# - CVE-2019-11709
|
||||
# - CVE-2019-11711
|
||||
# - CVE-2019-11712
|
||||
# - CVE-2019-11713
|
||||
# - CVE-2019-11715
|
||||
# - CVE-2019-11717
|
||||
# - CVE-2019-11719
|
||||
# - CVE-2019-11729
|
||||
# - CVE-2019-11730
|
||||
# - CVE-2019-9811
|
||||
# 60.7.2-r0:
|
||||
# - CVE-2019-11708
|
||||
# 60.7.1-r0:
|
||||
# - CVE-2019-11707
|
||||
# 60.7.0-r0:
|
||||
# - CVE-2019-9815
|
||||
# - CVE-2019-9816
|
||||
# - CVE-2019-9817
|
||||
# - CVE-2019-9818
|
||||
# - CVE-2019-9819
|
||||
# - CVE-2019-9820
|
||||
# - CVE-2019-11691
|
||||
# - CVE-2019-11692
|
||||
# - CVE-2019-11693
|
||||
# - CVE-2019-7317
|
||||
# - CVE-2019-9797
|
||||
# - CVE-2018-18511
|
||||
# - CVE-2019-11694
|
||||
# - CVE-2019-11698
|
||||
# - CVE-2019-5798
|
||||
# - CVE-2019-9800
|
||||
# 60.6.1-r0:
|
||||
# - CVE-2019-9810
|
||||
# - CVE-2019-9813
|
||||
# - CVE-2019-9790
|
||||
# - CVE-2019-9791
|
||||
# - CVE-2019-9792
|
||||
# - CVE-2019-9793
|
||||
# - CVE-2019-9794
|
||||
# - CVE-2019-9795
|
||||
# - CVE-2019-9796
|
||||
# - CVE-2019-9801
|
||||
# - CVE-2018-18506
|
||||
# - CVE-2019-9788
|
||||
# 60.5.2-r0:
|
||||
# - CVE-2019-5785
|
||||
# - CVE-2018-18335
|
||||
# - CVE-2018-18356
|
||||
# 60.5.0-r0:
|
||||
# - CVE-2018-18500
|
||||
# - CVE-2018-18505
|
||||
# - CVE-2018-18501
|
||||
# 52.6.0-r0:
|
||||
# - CVE-2018-5089
|
||||
# - CVE-2018-5091
|
||||
# - CVE-2018-5095
|
||||
# - CVE-2018-5096
|
||||
# - CVE-2018-5097
|
||||
# - CVE-2018-5098
|
||||
# - CVE-2018-5099
|
||||
# - CVE-2018-5102
|
||||
# - CVE-2018-5103
|
||||
# - CVE-2018-5104
|
||||
# - CVE-2018-5117
|
||||
# 52.5.2-r0:
|
||||
# - CVE-2017-7843
|
||||
|
||||
# we need this because cargo verifies checksums of all files in vendor
|
||||
# crates when it builds and gives us no way to override or update the
|
||||
# file sanely... so just clear out the file list
|
||||
_clear_vendor_checksums() {
|
||||
sed -i 's/\("files":{\)[^}]*/\1/' third_party/rust/$1/.cargo-checksum.json
|
||||
}
|
||||
|
||||
export SHELL=/bin/sh
|
||||
export BUILD_OFFICIAL=1
|
||||
export MOZILLA_OFFICIAL=1
|
||||
export USE_SHORT_LIBNAME=1
|
||||
export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system
|
||||
export MOZ_APP_PROFILE="mozilla/firefox"
|
||||
export MOZ_APP_REMOTINGNAME=firefox-esr
|
||||
export MOZBUILD_STATE_PATH="$srcdir"/mozbuild
|
||||
# disable desktop notifications
|
||||
export MOZ_NOSPAM=1
|
||||
# Find our triplet JSON
|
||||
export RUST_TARGET="$CTARGET"
|
||||
|
||||
# Build with Clang, takes less RAM
|
||||
export CC="clang-15"
|
||||
export CXX="clang++-15"
|
||||
|
||||
# set rpath so linker finds the libs
|
||||
export LDFLAGS="$LDFLAGS -Wl,-rpath,$_mozappdir"
|
||||
|
||||
# let firefox do this itself.
|
||||
unset CARGO_PROFILE_RELEASE_OPT_LEVEL
|
||||
unset CARGO_PROFILE_RELEASE_LTO
|
||||
|
||||
export CFLAGS="$CFLAGS -O2"
|
||||
export CXXFLAGS="$CXXFLAGS -O2"
|
||||
export CARGO_REGISTRIES_CRATES_IO_PROTOCOL="sparse"
|
||||
|
||||
prepare() {
|
||||
default_prepare
|
||||
cp "$srcdir"/stab.h toolkit/crashreporter/google-breakpad/src/
|
||||
|
||||
base64 -d "$srcdir"/mozilla-location.keys > "$builddir"/mozilla-api-key
|
||||
|
||||
_clear_vendor_checksums audio_thread_priority
|
||||
_clear_vendor_checksums target-lexicon-0.9.0
|
||||
_clear_vendor_checksums packed_simd_2
|
||||
|
||||
# webrtc does not build on these
|
||||
case "$CARCH" in
|
||||
ppc64le)
|
||||
local webrtc_config="ac_add_options --disable-webrtc"
|
||||
;;
|
||||
esac
|
||||
case "$CARCH" in
|
||||
armv7)
|
||||
# broken here
|
||||
local rust_simd="ac_add_options --disable-rust-simd"
|
||||
;;
|
||||
*)
|
||||
local rust_simd="ac_add_options --enable-rust-simd"
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$CARCH" in
|
||||
aarch64|arm*|x86*)
|
||||
# disable-elf-hack: exists only on aarch64, arm*, x86, x86_64
|
||||
local arch_config="ac_add_options --disable-elf-hack"
|
||||
;;
|
||||
esac
|
||||
|
||||
# sandbox only supported here
|
||||
case "$CARCH" in
|
||||
x86*|armv7|aarch64)
|
||||
local sandbox="ac_add_options --enable-sandbox"
|
||||
;;
|
||||
*)
|
||||
local sandbox="ac_add_options --disable-sandbox"
|
||||
;;
|
||||
esac
|
||||
|
||||
cat > base-mozconfig <<-EOF
|
||||
# disable unwanted things
|
||||
ac_add_options --disable-bootstrap
|
||||
ac_add_options --disable-cargo-incremental
|
||||
ac_add_options --disable-crashreporter
|
||||
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-app-name=firefox-esr
|
||||
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 --without-wasm-sandboxed-libraries
|
||||
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"
|
||||
|
||||
$arch_config
|
||||
$rust_simd
|
||||
$sandbox
|
||||
$webrtc_config
|
||||
EOF
|
||||
}
|
||||
|
||||
build() {
|
||||
cat > .mozconfig base-mozconfig
|
||||
|
||||
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}
|
||||
|
||||
case "$CARCH" in
|
||||
# on this platforms, 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
|
||||
|
||||
export LDFLAGS="$LDFLAGS -Wl,--thinlto-jobs=$thinlto_jobs"
|
||||
|
||||
case "$CARCH" in
|
||||
# lto for 64-bit systems only
|
||||
aarch64|x86_64|ppc64le)
|
||||
cat > .mozconfig base-mozconfig <<-EOF
|
||||
ac_add_options --enable-lto=cross
|
||||
EOF
|
||||
esac
|
||||
|
||||
./mach build
|
||||
}
|
||||
|
||||
package() {
|
||||
DESTDIR="$pkgdir" ./mach install
|
||||
|
||||
local _png
|
||||
for _png in ./browser/branding/official/default*.png; do
|
||||
local i=${_png%.png}
|
||||
i=${i##*/default}
|
||||
install -Dm644 "$_png" \
|
||||
"$pkgdir"/usr/share/icons/hicolor/"$i"x"$i"/apps/firefox-esr.png
|
||||
done
|
||||
|
||||
install -Dm644 browser/branding/official/content/about-logo.png \
|
||||
"$pkgdir"/usr/share/icons/hicolor/192x192/apps/firefox-esr.png
|
||||
install -Dm644 browser/branding/official/content/about-logo@2x.png \
|
||||
"$pkgdir"/usr/share/icons/hicolor/384x384/apps/firefox-esr.png
|
||||
install -Dm644 browser/branding/official/content/about-logo.svg \
|
||||
"$pkgdir"/usr/share/icons/hicolor/scalable/apps/firefox-esr.svg
|
||||
|
||||
install -Dm644 "$srcdir"/firefox.desktop \
|
||||
"$pkgdir"/usr/share/applications/firefox-esr.desktop
|
||||
|
||||
# install our vendor prefs
|
||||
install -Dm644 "$srcdir"/vendor-prefs.js \
|
||||
"$pkgdir"/$_mozappdir/browser/defaults/preferences/vendor.js
|
||||
|
||||
# Generate appdata file
|
||||
mkdir -p "$pkgdir"/usr/share/metainfo/
|
||||
export VERSION="$pkgver"
|
||||
export DATE="$_releasedate"
|
||||
envsubst < "$builddir"/taskcluster/docker/firefox-flatpak/org.mozilla.firefox.appdata.xml.in > "$pkgdir"/usr/share/metainfo/org.mozilla.firefox-esr.appdata.xml
|
||||
|
||||
# Replace duplicate binary with wrapper
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=658850
|
||||
install -Dm755 /dev/stdin "$pkgdir"/usr/bin/firefox-esr <<- EOF
|
||||
#!/bin/sh
|
||||
exec $_mozappdir/firefox-esr "\$@"
|
||||
EOF
|
||||
rm "$pkgdir"/$_mozappdir/firefox-esr-bin
|
||||
ln -sfv /usr/bin/firefox-esr "$pkgdir"/$_mozappdir/firefox-esr-bin
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
f2b53c35bdd22a3de6f32699b832babcbf499667197c02dd50cf0b6cd956e0f4471f420938c2ab72f0a0686ed99fe74e3184afe9b5f7169130879b8f8fd99f0b firefox-102.10.0esr.source.tar.xz
|
||||
4e584621145cf8add069c6dac18e805b3274a1ee402d84e924df2341f7d3c5be261a93ef51283bacbd606f47fbdc628c4323ecc31efc5b403b8d224b18dc278f allow-custom-rust-vendor.patch
|
||||
b1cb2db3122634f66d2bae7066e76f2dcd455c464e021db4de3b0a08314df95cb667846081682db549dd2af8a00831cabe44a2420c66cdfb5e3b5fa7e6bd21d3 avoid-redefinition.patch
|
||||
454ea3263cabce099accbdc47aaf83be26a19f8b5a4568c01a7ef0384601cf8315efd86cd917f9c8bf419c2c845db89a905f3ff9a8eb0c8e41042e93aa96a85c disable-moz-stackwalk.patch
|
||||
f7b3b45ba04d05d17439d009bf0c9f27881e126f424e2257552338a0c1e3771ee1289c044babcb0920f62af62873a268c0cf524e1d35711e6dc8b808ca5e9f26 esr-metainfo.patch
|
||||
d3a54897089eda9fdfe4b25ade1cb2c01c4b31fa9bf0e0ddbb0bbe674072ec5d36a6e52f791a8cbc8d3908e912ac2d7edec69b34d87ecca0acca876d45974c8d fix-neon-aom.patch
|
||||
2f4f15974d52de4bb273b62a332d13620945d284bbc6fe6bd0a1f58ff7388443bc1d3bf9c82cc31a8527aad92b0cd3a1bc41d0af5e1800e0dcbd7033e58ffd71 fix-fortify-system-wrappers.patch
|
||||
cd68b89e29e5f6379fbd5679db27b9a5ef70ea65e51c0d0a8137e1f1fd210e35a8cfb047798e9549bc7275606d7ec5c8d8af1335d29da4699db7acd8bc7ff556 fix-rust-target.patch
|
||||
305c874fdea3096e9c4c6aa6520ac64bb1c347c4b59db8360096646593fe684c3b5377874d91cecd33d56d1410b4714fbdea2b514923723ecbeff79d51265d9b fix-webrtc-glibcisms.patch
|
||||
a4a3e062661bda64d502d426c480ac9645345860118de9df9ffe6e0597738c70c11e5cdef2d4fd12c5e2ee30a09310159230524655a419a4f7e4eeeb0f3c06b0 mallinfo.patch
|
||||
f3d419880cc7f043b6eb547894d486457d407640be2bd8b402eb3a534ccea39568f6d506fc44a3b29c94eb0dc6fc2bec6600d161786fd233d26b1dc8970f5ab4 python-deps.patch
|
||||
2518f2fc75b5db30058e0735f47d60fdf1e7adfaeee4b33fb2afb1bd9a616ce943fd88f4404d0802d4083703f4acf1d5ad42377218d025bc768807fbaf7e1609 sandbox-fork.patch
|
||||
b7d0a6126bdf6c0569f80aabf5b37ed2c7a35712eb8a0404a2d85381552f5555d4f97d213ea26cec6a45dc2785f22439376ed5f8e78b4fd664ef0223307b333e sandbox-largefile.patch
|
||||
94433c5ffdbe579c456d95c5f053f61fcbab2f652fa90bc69dcc27d9a1507a8e5c677adeadae9a7a75cc9a55184c1040737f4dfd10b279c088ef016561e6f135 sandbox-sched_setscheduler.patch
|
||||
12fbe50d94624931a581314b8e6e228a1f8a4550704a6ee4f8904184ac4727efd90982e87a8fdd318e15515f9430dfc6cf7455b301e903003027b3f0afa79795 zstandard.patch
|
||||
0b3f1e4b9fdc868e4738b5c81fd6c6128ce8885b260affcb9a65ff9d164d7232626ce1291aaea70132b3e3124f5e13fef4d39326b8e7173e362a823722a85127 stab.h
|
||||
d354f48a29bfc16719f3b230b1395063239d4420f9e47522de4662392d9697b15f931ca3bf6055d100fa33d61a9a1a13477687d5eac99e50ae7dbef9882a5808 firefox.desktop
|
||||
382510375b1a2fa79be0ab79e3391a021ae2c022429ffbaa7e7a69166f99bb56d01e59a1b10688592a29238f21c9d6977672bd77f9fae439b66bdfe0c55ddb15 mozilla-location.keys
|
||||
fc45bc3ffb9404e5338ea26a9f04807b40f6f516324972cddd48bedb91b8bd7c6b8d4e03a0209020f5e67b703bc4ff89389985791b9bd544a0fc3951e2dc338e vendor-prefs.js
|
||||
"
|
564
user/firefox-esr/allow-custom-rust-vendor.patch
Normal file
564
user/firefox-esr/allow-custom-rust-vendor.patch
Normal file
|
@ -0,0 +1,564 @@
|
|||
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(());
|
||||
}
|
||||
|
15
user/firefox-esr/avoid-redefinition.patch
Normal file
15
user/firefox-esr/avoid-redefinition.patch
Normal file
|
@ -0,0 +1,15 @@
|
|||
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>
|
18
user/firefox-esr/disable-moz-stackwalk.patch
Normal file
18
user/firefox-esr/disable-moz-stackwalk.patch
Normal file
|
@ -0,0 +1,18 @@
|
|||
diff --git a/mozglue/misc/StackWalk.cpp b/mozglue/misc/StackWalk.cpp
|
||||
index 7d62921..adcfa44 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
|
||||
|
||||
-#if (defined(linux) && \
|
||||
- ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \
|
||||
- defined(HAVE__UNWIND_BACKTRACE)))
|
||||
-# define MOZ_STACKWALK_SUPPORTS_LINUX 1
|
||||
-#else
|
||||
# define MOZ_STACKWALK_SUPPORTS_LINUX 0
|
||||
-#endif
|
||||
|
||||
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1)
|
||||
# define HAVE___LIBC_STACK_END 1
|
18
user/firefox-esr/esr-metainfo.patch
Normal file
18
user/firefox-esr/esr-metainfo.patch
Normal file
|
@ -0,0 +1,18 @@
|
|||
see https://gitlab.alpinelinux.org/alpine/aports/-/issues/13235
|
||||
--- a/taskcluster/docker/firefox-flatpak/org.mozilla.firefox.appdata.xml.in
|
||||
+++ b/taskcluster/docker/firefox-flatpak/org.mozilla.firefox.appdata.xml.in
|
||||
@@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<application>
|
||||
- <id type="desktop">org.mozilla.firefox</id>
|
||||
+ <id type="desktop">org.mozilla.firefox-esr</id>
|
||||
- <launchable type="desktop-id">org.mozilla.firefox.desktop</launchable>
|
||||
+ <launchable type="desktop-id">firefox-esr.desktop</launchable>
|
||||
- <name>Firefox</name>
|
||||
+ <name>Firefox ESR</name>
|
||||
<developer_name>Mozilla</developer_name>
|
||||
- <summary>Fast, Private & Safe Web Browser</summary>
|
||||
+ <summary>Mozilla Firefox Web Browser Extended Support Release</summary>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<project_license>MPL-2.0</project_license>
|
||||
<description>
|
18
user/firefox-esr/firefox-esr.post-upgrade
Normal file
18
user/firefox-esr/firefox-esr.post-upgrade
Normal file
|
@ -0,0 +1,18 @@
|
|||
#!/bin/sh
|
||||
|
||||
ver_old=$2
|
||||
|
||||
if [ "$(apk version -t "$ver_old" '102.2.0-r4')" = '<' ]; then
|
||||
# renamed appid, needs profile migration
|
||||
cat 1>&2 <<-EOF
|
||||
*
|
||||
* firefox-esr now has a different appid, so you will see a default new
|
||||
* profile upon starting it. to use your old profile again, you have to
|
||||
* first migrate it using 'firefox-esr --ProfileManager'. select the
|
||||
* previous one (if you didn't rename it, it's probably named
|
||||
* default-something) to migrate it.
|
||||
*
|
||||
EOF
|
||||
fi
|
||||
|
||||
exit 0
|
340
user/firefox-esr/firefox.desktop
Normal file
340
user/firefox-esr/firefox.desktop
Normal file
|
@ -0,0 +1,340 @@
|
|||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=Firefox ESR
|
||||
GenericName=Web Browser
|
||||
GenericName[ar]=متصفح ويب
|
||||
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]=Veebibrauser
|
||||
GenericName[fa]=مرورگر اینترنتی
|
||||
GenericName[fi]=WWW-selain
|
||||
GenericName[fr]=Navigateur Web
|
||||
GenericName[gl]=Navegador Web
|
||||
GenericName[he]=דפדפן אינטרנט
|
||||
GenericName[hr]=Web preglednik
|
||||
GenericName[hu]=Webböngésző
|
||||
GenericName[it]=Browser web
|
||||
GenericName[ja]=ウェブ・ブラウザ
|
||||
GenericName[ko]=웹 브라우저
|
||||
GenericName[ku]=Geroka torê
|
||||
GenericName[lt]=Interneto naršyklė
|
||||
GenericName[nb]=Nettleser
|
||||
GenericName[nl]=Webbrowser
|
||||
GenericName[nn]=Nettlesar
|
||||
GenericName[no]=Nettleser
|
||||
GenericName[pl]=Przeglądarka WWW
|
||||
GenericName[pt]=Navegador Web
|
||||
GenericName[pt_BR]=Navegador Web
|
||||
GenericName[ro]=Navigator Internet
|
||||
GenericName[ru]=Веб-браузер
|
||||
GenericName[sk]=Internetový prehliadač
|
||||
GenericName[sl]=Spletni brskalnik
|
||||
GenericName[sv]=Webbläsare
|
||||
GenericName[tr]=Web Tarayıcı
|
||||
GenericName[ug]=توركۆرگۈ
|
||||
GenericName[uk]=Веб-браузер
|
||||
GenericName[vi]=Trình duyệt Web
|
||||
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-esr %u
|
||||
Icon=firefox-esr
|
||||
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-esr
|
||||
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-esr --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-esr --private-window %u
|
13
user/firefox-esr/fix-fortify-system-wrappers.patch
Normal file
13
user/firefox-esr/fix-fortify-system-wrappers.patch
Normal file
|
@ -0,0 +1,13 @@
|
|||
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',
|
13
user/firefox-esr/fix-neon-aom.patch
Normal file
13
user/firefox-esr/fix-neon-aom.patch
Normal file
|
@ -0,0 +1,13 @@
|
|||
diff --git a/media/libaom/moz.build b/media/libaom/moz.build
|
||||
index fd8c7f2..db3f9ca 100644
|
||||
--- a/media/libaom/moz.build
|
||||
+++ b/media/libaom/moz.build
|
||||
@@ -55,7 +55,7 @@ elif CONFIG['CPU_ARCH'] == 'arm':
|
||||
|
||||
for f in SOURCES:
|
||||
if f.endswith('neon.c'):
|
||||
- SOURCES[f].flags += CONFIG['VPX_ASFLAGS']
|
||||
+ SOURCES[f].flags += CONFIG['NEON_FLAGS']
|
||||
|
||||
if CONFIG['OS_TARGET'] == 'Android':
|
||||
# For cpu-features.h
|
31
user/firefox-esr/fix-rust-target.patch
Normal file
31
user/firefox-esr/fix-rust-target.patch
Normal file
|
@ -0,0 +1,31 @@
|
|||
Allow us to just set RUST_TARGEt ourselves instead of hacking around in mozilla's
|
||||
weird custom build system...
|
||||
|
||||
--- a/build/moz.configure/rust.configure
|
||||
+++ b/build/moz.configure/rust.configure
|
||||
@@ -225,7 +225,9 @@
|
||||
data.setdefault(key, []).append(namespace(rust_target=t, target=info))
|
||||
return data
|
||||
|
||||
-
|
||||
+@imports('os')
|
||||
+@imports(_from='mozbuild.util', _import='ensure_unicode')
|
||||
+@imports(_from='mozbuild.util', _import='system_encoding')
|
||||
def detect_rustc_target(
|
||||
host_or_target, compiler_info, arm_target, rust_supported_targets
|
||||
):
|
||||
@@ -340,13 +342,13 @@
|
||||
|
||||
return None
|
||||
|
||||
- rustc_target = find_candidate(candidates)
|
||||
+ rustc_target = os.environ['RUST_TARGET']
|
||||
|
||||
if rustc_target is None:
|
||||
die("Don't know how to translate {} for rustc".format(host_or_target.alias))
|
||||
|
||||
- return rustc_target
|
||||
+ return ensure_unicode(rustc_target, system_encoding)
|
||||
|
||||
|
||||
@imports('os')
|
20
user/firefox-esr/fix-webrtc-glibcisms.patch
Normal file
20
user/firefox-esr/fix-webrtc-glibcisms.patch
Normal file
|
@ -0,0 +1,20 @@
|
|||
--- 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 WEBRTC_GLIBC_PREREQ(2, 16)
|
||||
+#if !__GLIBC__ || WEBRTC_GLIBC_PREREQ(2, 16)
|
||||
#include <sys/auxv.h>
|
||||
#else
|
||||
#include <errno.h>
|
||||
@@ -40,7 +40,7 @@
|
||||
int architecture = 0;
|
||||
uint64_t hwcap = 0;
|
||||
const char* platform = NULL;
|
||||
-#if WEBRTC_GLIBC_PREREQ(2, 16)
|
||||
+#if !__GLIBC__ || WEBRTC_GLIBC_PREREQ(2, 16)
|
||||
hwcap = getauxval(AT_HWCAP);
|
||||
platform = (const char*)getauxval(AT_PLATFORM);
|
||||
#else
|
20
user/firefox-esr/mallinfo.patch
Normal file
20
user/firefox-esr/mallinfo.patch
Normal file
|
@ -0,0 +1,20 @@
|
|||
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__)
|
1
user/firefox-esr/mozilla-location.keys
Normal file
1
user/firefox-esr/mozilla-location.keys
Normal file
|
@ -0,0 +1 @@
|
|||
NjhhZGJjMDEtMDM3OC00Zjc0LTk0N2UtMzBiYzA5NjlhMDc3Cg==
|
9
user/firefox-esr/python-deps.patch
Normal file
9
user/firefox-esr/python-deps.patch
Normal file
|
@ -0,0 +1,9 @@
|
|||
--- a/python/sites/mach.txt
|
||||
+++ b/python/sites/mach.txt
|
||||
@@ -134,4 +134,4 @@
|
||||
# We aren't (yet) able to pin packages in automation, so we have to
|
||||
# support down to the oldest locally-installed version (5.4.2).
|
||||
-pypi-optional:psutil>=5.4.2,<=5.8.0:telemetry will be missing some data
|
||||
+pypi-optional:psutil>=5.4.2,<=5.10.0:telemetry will be missing some data
|
||||
-pypi-optional:zstandard>=0.11.1,<=0.17.0:zstd archives will not be possible to extract
|
||||
+pypi-optional:zstandard>=0.11.1,<=0.18.0:zstd archives will not be possible to extract
|
15
user/firefox-esr/sandbox-fork.patch
Normal file
15
user/firefox-esr/sandbox-fork.patch
Normal file
|
@ -0,0 +1,15 @@
|
|||
make SYS_fork non-fatal, musl uses it for fork(2)
|
||||
|
||||
--- a/security/sandbox/linux/SandboxFilter.cpp
|
||||
+++ b/security/sandbox/linux/SandboxFilter.cpp
|
||||
@@ -1253,6 +1253,10 @@
|
||||
// usually do something reasonable on error.
|
||||
case __NR_clone:
|
||||
return ClonePolicy(Error(EPERM));
|
||||
+#ifdef __NR_fork
|
||||
+ case __NR_fork:
|
||||
+ return Error(ENOSYS);
|
||||
+#endif
|
||||
|
||||
# ifdef __NR_fadvise64
|
||||
case __NR_fadvise64:
|
17
user/firefox-esr/sandbox-largefile.patch
Normal file
17
user/firefox-esr/sandbox-largefile.patch
Normal file
|
@ -0,0 +1,17 @@
|
|||
--- a/security/sandbox/linux/SandboxFilter.cpp 2020-11-23 22:41:14.556378950 +0100
|
||||
+++ b/security/sandbox/linux/SandboxFilter.cpp 2020-11-23 22:40:23.595806444 +0100
|
||||
@@ -68,7 +68,13 @@
|
||||
|
||||
// The headers define O_LARGEFILE as 0 on x86_64, but we need the
|
||||
// actual value because it shows up in file flags.
|
||||
-#define O_LARGEFILE_REAL 00100000
|
||||
+#if defined(__x86_64__) || defined(__i386__) || defined(__mips__)
|
||||
+#define O_LARGEFILE_REAL 0100000
|
||||
+#elif defined(__powerpc__)
|
||||
+#define O_LARGEFILE_REAL 0200000
|
||||
+#else
|
||||
+#define O_LARGEFILE_REAL O_LARGEFILE
|
||||
+#endif
|
||||
|
||||
// Not part of UAPI, but userspace sees it in F_GETFL; see bug 1650751.
|
||||
#define FMODE_NONOTIFY 0x4000000
|
16
user/firefox-esr/sandbox-sched_setscheduler.patch
Normal file
16
user/firefox-esr/sandbox-sched_setscheduler.patch
Normal file
|
@ -0,0 +1,16 @@
|
|||
upstream bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1657849
|
||||
--- a/security/sandbox/linux/SandboxFilter.cpp
|
||||
+++ b/security/sandbox/linux/SandboxFilter.cpp
|
||||
@@ -1694,10 +1694,10 @@
|
||||
return Allow();
|
||||
case __NR_sched_get_priority_min:
|
||||
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));
|
||||
}
|
71
user/firefox-esr/stab.h
Normal file
71
user/firefox-esr/stab.h
Normal file
|
@ -0,0 +1,71 @@
|
|||
/* $OpenBSD: stab.h,v 1.3 2003/06/02 19:34:12 millert Exp $ */
|
||||
/* $NetBSD: stab.h,v 1.4 1994/10/26 00:56:25 cgd Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1991 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)stab.h 5.2 (Berkeley) 4/4/91
|
||||
*/
|
||||
|
||||
#ifndef _STAB_H_
|
||||
#define _STAB_H_
|
||||
|
||||
/*
|
||||
* The following are symbols used by various debuggers and by the Pascal
|
||||
* compiler. Each of them must have one (or more) of the bits defined by
|
||||
* the N_STAB mask set.
|
||||
*/
|
||||
|
||||
#define N_GSYM 0x20 /* global symbol */
|
||||
#define N_FNAME 0x22 /* F77 function name */
|
||||
#define N_FUN 0x24 /* procedure name */
|
||||
#define N_STSYM 0x26 /* data segment variable */
|
||||
#define N_LCSYM 0x28 /* bss segment variable */
|
||||
#define N_MAIN 0x2a /* main function name */
|
||||
#define N_PC 0x30 /* global Pascal symbol */
|
||||
#define N_RSYM 0x40 /* register variable */
|
||||
#define N_SLINE 0x44 /* text segment line number */
|
||||
#define N_DSLINE 0x46 /* data segment line number */
|
||||
#define N_BSLINE 0x48 /* bss segment line number */
|
||||
#define N_SSYM 0x60 /* structure/union element */
|
||||
#define N_SO 0x64 /* main source file name */
|
||||
#define N_LSYM 0x80 /* stack variable */
|
||||
#define N_BINCL 0x82 /* include file beginning */
|
||||
#define N_SOL 0x84 /* included source file name */
|
||||
#define N_PSYM 0xa0 /* parameter variable */
|
||||
#define N_EINCL 0xa2 /* include file end */
|
||||
#define N_ENTRY 0xa4 /* alternate entry point */
|
||||
#define N_LBRAC 0xc0 /* left bracket */
|
||||
#define N_EXCL 0xc2 /* deleted include file */
|
||||
#define N_RBRAC 0xe0 /* right bracket */
|
||||
#define N_BCOMM 0xe2 /* begin common */
|
||||
#define N_ECOMM 0xe4 /* end common */
|
||||
#define N_ECOML 0xe8 /* end common (local name) */
|
||||
#define N_LENG 0xfe /* length of preceding entry */
|
||||
|
||||
#endif /* !_STAB_H_ */
|
12
user/firefox-esr/vendor-prefs.js
Normal file
12
user/firefox-esr/vendor-prefs.js
Normal file
|
@ -0,0 +1,12 @@
|
|||
// 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);
|
8
user/firefox-esr/zstandard.patch
Normal file
8
user/firefox-esr/zstandard.patch
Normal file
|
@ -0,0 +1,8 @@
|
|||
--- a/python/sites/mach.txt
|
||||
+++ b/python/sites/mach.txt
|
||||
@@ -134,4 +134,4 @@
|
||||
# We aren't (yet) able to pin packages in automation, so we have to
|
||||
# support down to the oldest locally-installed version (5.4.2).
|
||||
pypi-optional:psutil>=5.4.2,<=5.10.0:telemetry will be missing some data
|
||||
-pypi-optional:zstandard>=0.11.1,<=0.18.0:zstd archives will not be possible to extract
|
||||
+pypi-optional:zstandard>=0.11.1:zstd archives will not be possible to extract
|
Loading…
Reference in a new issue