user/zotero: upgrade to 7.0.0_beta74 #431
20 changed files with 180 additions and 82405 deletions
|
@ -1,15 +1,18 @@
|
||||||
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
|
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||||
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||||
pkgname=zotero
|
pkgname=zotero
|
||||||
pkgver=7.0.0_beta68
|
pkgver=7.0.0_beta74
|
||||||
pkgrel=0
|
pkgrel=0
|
||||||
_fxver=102.15.1
|
_fxver=115.9.1
|
||||||
_gittag=$pkgver
|
_gittag=$pkgver
|
||||||
# Date of release, YY-MM-DD for metainfo file (see package())
|
# Date of release, YY-MM-DD for metainfo file (see package())
|
||||||
_releasedate=2024-02-03
|
# https://www.mozilla.org/firefox/organizations/notes/
|
||||||
|
_releasedate=2024-03-22
|
||||||
pkgdesc="A free, easy-to-use tool to help you collect, organize, cite, and share your research sources."
|
pkgdesc="A free, easy-to-use tool to help you collect, organize, cite, and share your research sources."
|
||||||
arch="x86_64 aarch64"
|
url="https://www.mozilla.org/en-US/firefox/organizations/"
|
||||||
url="https://github.com/zotero/zotero"
|
# 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"
|
license="GPL-3.0-only AND LGPL-2.1-only AND LGPL-3.0-only AND MPL-2.0"
|
||||||
options="!check" # No test suite
|
options="!check" # No test suite
|
||||||
depends="
|
depends="
|
||||||
|
@ -64,32 +67,23 @@ makedepends="
|
||||||
wireless-tools-dev
|
wireless-tools-dev
|
||||||
zip
|
zip
|
||||||
"
|
"
|
||||||
source="
|
source="https://ftp.mozilla.org/pub/firefox/releases/${_fxver}esr/source/firefox-${_fxver}esr.source.tar.xz
|
||||||
https://ftp.mozilla.org/pub/firefox/releases/${_fxver}esr/source/firefox-${_fxver}esr.source.tar.xz
|
|
||||||
allow-custom-rust-vendor.patch
|
|
||||||
audio-lfs64.patch
|
audio-lfs64.patch
|
||||||
avoid-redefinition.patch
|
|
||||||
disable-moz-stackwalk.patch
|
disable-moz-stackwalk.patch
|
||||||
esr-metainfo.patch
|
esr-metainfo.patch
|
||||||
firefox-102.12.0-ffmpeg_6-1.patch
|
|
||||||
ffmpeg6-fixup.patch
|
|
||||||
fix-neon-aom.patch
|
|
||||||
fix-fortify-system-wrappers.patch
|
fix-fortify-system-wrappers.patch
|
||||||
fix-rust-target.patch
|
fix-rust-target.patch
|
||||||
fix-webrtc-glibcisms.patch
|
fix-webrtc-glibcisms.patch
|
||||||
gcc13.patch
|
icu74.patch
|
||||||
mallinfo.patch
|
lfs64.patch
|
||||||
|
no-ccache-stats.patch
|
||||||
|
ppc-musttail.patch
|
||||||
|
ppc-webrtc.patch
|
||||||
python-deps.patch
|
python-deps.patch
|
||||||
rust-lto-thin.patch
|
rust-lto-thin.patch
|
||||||
sandbox-fork.patch
|
sandbox-fork.patch
|
||||||
sandbox-largefile.patch
|
sandbox-largefile.patch
|
||||||
sandbox-sched_setscheduler.patch
|
sandbox-sched_setscheduler.patch
|
||||||
zstandard.patch
|
|
||||||
icu74.patch
|
|
||||||
lfs64.patch
|
|
||||||
hunspell-dont-build-unused-function.patch
|
|
||||||
utils-libc-lfs64.patch
|
|
||||||
update-from-packed-simd-2-to-simd1.patch
|
|
||||||
|
|
||||||
stab.h
|
stab.h
|
||||||
|
|
||||||
|
@ -109,7 +103,6 @@ _mozappdir=/usr/lib/zotero
|
||||||
|
|
||||||
# help our shared-object scanner to find the libs
|
# help our shared-object scanner to find the libs
|
||||||
ldpath="$_mozappdir"
|
ldpath="$_mozappdir"
|
||||||
sonameprefix="$pkgname:"
|
|
||||||
|
|
||||||
# we need this because cargo verifies checksums of all files in vendor
|
# 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
|
# crates when it builds and gives us no way to override or update the
|
||||||
|
@ -135,28 +128,25 @@ export RUST_TARGET="$CTARGET"
|
||||||
export CC="clang"
|
export CC="clang"
|
||||||
export CXX="clang++"
|
export CXX="clang++"
|
||||||
|
|
||||||
|
# set rpath so linker finds the libs
|
||||||
|
export LDFLAGS="$LDFLAGS -Wl,-rpath,$_mozappdir"
|
||||||
|
|
||||||
# let firefox do this itself.
|
# let firefox do this itself.
|
||||||
unset CARGO_PROFILE_RELEASE_OPT_LEVEL
|
unset CARGO_PROFILE_RELEASE_OPT_LEVEL
|
||||||
unset CARGO_PROFILE_RELEASE_LTO
|
unset CARGO_PROFILE_RELEASE_LTO
|
||||||
|
|
||||||
export CFLAGS="${CFLAGS/-fstack-clash-protection/} -g0 -O2"
|
export CFLAGS="${CFLAGS/-fstack-clash-protection/} -g0 -O2"
|
||||||
export CXXFLAGS="${CXXFLAGS/-fstack-clash-protection/} -g0 -O2 -Wno-deprecated-builtins -Wno-deprecated-declarations"
|
export CXXFLAGS="${CXXFLAGS/-fstack-clash-protection/} -g0 -O2 -Wno-deprecated-builtins -Wno-deprecated-declarations"
|
||||||
export LDFLAGS="$LDFLAGS -Wl,--undefined-version"
|
|
||||||
|
|
||||||
prepare() {
|
prepare() {
|
||||||
|
# moves zotero source to mozilla source
|
||||||
mv "$_zoterodir" "$builddir"/zotero
|
mv "$_zoterodir" "$builddir"/zotero
|
||||||
default_prepare
|
default_prepare
|
||||||
cp "$srcdir"/stab.h toolkit/crashreporter/google-breakpad/src/
|
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 audio_thread_priority
|
||||||
_clear_vendor_checksums target-lexicon-0.9.0
|
|
||||||
_clear_vendor_checksums bindgen
|
base64 -d "$srcdir"/mozilla-location.keys > "$builddir"/mozilla-api-key
|
||||||
_clear_vendor_checksums mp4parse
|
|
||||||
_clear_vendor_checksums getrandom
|
|
||||||
_clear_vendor_checksums packed_simd
|
|
||||||
_clear_vendor_checksums encoding_rs
|
|
||||||
|
|
||||||
# webrtc does not build on these
|
# webrtc does not build on these
|
||||||
case "$CARCH" in
|
case "$CARCH" in
|
||||||
|
@ -289,14 +279,6 @@ build() {
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
case "$CARCH" in
|
|
||||||
x86)
|
|
||||||
# the i586 baseline cannot compile firefox
|
|
||||||
export CFLAGS="$CFLAGS -march=pentium4"
|
|
||||||
export CXXFLAGS="$CXXFLAGS -march=pentium4"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
export LDFLAGS="$LDFLAGS -Wl,--thinlto-jobs=$thinlto_jobs"
|
export LDFLAGS="$LDFLAGS -Wl,--thinlto-jobs=$thinlto_jobs"
|
||||||
|
|
||||||
case "$CARCH" in
|
case "$CARCH" in
|
||||||
|
@ -307,10 +289,7 @@ build() {
|
||||||
EOF
|
EOF
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# set rpath so linker finds the libs
|
./mach build
|
||||||
export LDFLAGS="$LDFLAGS -Wl,-rpath,$_mozappdir"
|
|
||||||
|
|
||||||
./mach build
|
|
||||||
|
|
||||||
# install to where zotero expects it
|
# install to where zotero expects it
|
||||||
DESTDIR="$builddir"/zotero/app/xulrunner/firefox ./mach install
|
DESTDIR="$builddir"/zotero/app/xulrunner/firefox ./mach install
|
||||||
|
@ -344,37 +323,29 @@ package() {
|
||||||
}
|
}
|
||||||
|
|
||||||
sha512sums="
|
sha512sums="
|
||||||
bdb66b4fb5622af3e60580a3bcd464d98ef13cb38d6ac6c9e5fc046e567a003cf080125d7748950c91c442fde5e8024c50c4180d2f551aa3528160a3c05ae187 firefox-102.15.1esr.source.tar.xz
|
9ccaede2fcda13a07f98a2110bb8f99c7324601d66bff311f3070a669576a1598fe1d7de2d005d725d1f44dbe3934a9c0fd0b7950f60686047d4ce8d9d812310 firefox-115.9.1esr.source.tar.xz
|
||||||
4e584621145cf8add069c6dac18e805b3274a1ee402d84e924df2341f7d3c5be261a93ef51283bacbd606f47fbdc628c4323ecc31efc5b403b8d224b18dc278f allow-custom-rust-vendor.patch
|
|
||||||
3e0501ae7a650346c667dfdc0ae0ca286084f22e89ab2ac671cc0d7315673dc5b6dcb9f9882f6f39d26e9a31e57f7a0fd53d6b805e520224e22b8976850e2eb8 audio-lfs64.patch
|
3e0501ae7a650346c667dfdc0ae0ca286084f22e89ab2ac671cc0d7315673dc5b6dcb9f9882f6f39d26e9a31e57f7a0fd53d6b805e520224e22b8976850e2eb8 audio-lfs64.patch
|
||||||
b1cb2db3122634f66d2bae7066e76f2dcd455c464e021db4de3b0a08314df95cb667846081682db549dd2af8a00831cabe44a2420c66cdfb5e3b5fa7e6bd21d3 avoid-redefinition.patch
|
|
||||||
454ea3263cabce099accbdc47aaf83be26a19f8b5a4568c01a7ef0384601cf8315efd86cd917f9c8bf419c2c845db89a905f3ff9a8eb0c8e41042e93aa96a85c disable-moz-stackwalk.patch
|
454ea3263cabce099accbdc47aaf83be26a19f8b5a4568c01a7ef0384601cf8315efd86cd917f9c8bf419c2c845db89a905f3ff9a8eb0c8e41042e93aa96a85c disable-moz-stackwalk.patch
|
||||||
f7b3b45ba04d05d17439d009bf0c9f27881e126f424e2257552338a0c1e3771ee1289c044babcb0920f62af62873a268c0cf524e1d35711e6dc8b808ca5e9f26 esr-metainfo.patch
|
f7b3b45ba04d05d17439d009bf0c9f27881e126f424e2257552338a0c1e3771ee1289c044babcb0920f62af62873a268c0cf524e1d35711e6dc8b808ca5e9f26 esr-metainfo.patch
|
||||||
a13dee87adf659423f5b3fa0358cfbde135fa614c85dd170d1a48d32ee080e27aef062d3a8e3c45059c41463fda579f8900988166ccb51568793ee7ef9080d04 firefox-102.12.0-ffmpeg_6-1.patch
|
|
||||||
c2e17f269070d782154f843b95bf68be25d8c4356825dd436b1877aab63ac023051899371da5c21f6151970b2562376c2dadd2d6a038446e5fa621e2495668e1 ffmpeg6-fixup.patch
|
|
||||||
d3a54897089eda9fdfe4b25ade1cb2c01c4b31fa9bf0e0ddbb0bbe674072ec5d36a6e52f791a8cbc8d3908e912ac2d7edec69b34d87ecca0acca876d45974c8d fix-neon-aom.patch
|
|
||||||
2f4f15974d52de4bb273b62a332d13620945d284bbc6fe6bd0a1f58ff7388443bc1d3bf9c82cc31a8527aad92b0cd3a1bc41d0af5e1800e0dcbd7033e58ffd71 fix-fortify-system-wrappers.patch
|
2f4f15974d52de4bb273b62a332d13620945d284bbc6fe6bd0a1f58ff7388443bc1d3bf9c82cc31a8527aad92b0cd3a1bc41d0af5e1800e0dcbd7033e58ffd71 fix-fortify-system-wrappers.patch
|
||||||
cd68b89e29e5f6379fbd5679db27b9a5ef70ea65e51c0d0a8137e1f1fd210e35a8cfb047798e9549bc7275606d7ec5c8d8af1335d29da4699db7acd8bc7ff556 fix-rust-target.patch
|
cd68b89e29e5f6379fbd5679db27b9a5ef70ea65e51c0d0a8137e1f1fd210e35a8cfb047798e9549bc7275606d7ec5c8d8af1335d29da4699db7acd8bc7ff556 fix-rust-target.patch
|
||||||
305c874fdea3096e9c4c6aa6520ac64bb1c347c4b59db8360096646593fe684c3b5377874d91cecd33d56d1410b4714fbdea2b514923723ecbeff79d51265d9b fix-webrtc-glibcisms.patch
|
305c874fdea3096e9c4c6aa6520ac64bb1c347c4b59db8360096646593fe684c3b5377874d91cecd33d56d1410b4714fbdea2b514923723ecbeff79d51265d9b fix-webrtc-glibcisms.patch
|
||||||
49aa1dfbe11ed5370e839afb190da7f55ae4887b35645865efe25d398d890563722caedd5696d648ad71448621fbc8bab8def1a3d079e301d6414f0f20e96758 gcc13.patch
|
|
||||||
a4a3e062661bda64d502d426c480ac9645345860118de9df9ffe6e0597738c70c11e5cdef2d4fd12c5e2ee30a09310159230524655a419a4f7e4eeeb0f3c06b0 mallinfo.patch
|
|
||||||
f3d419880cc7f043b6eb547894d486457d407640be2bd8b402eb3a534ccea39568f6d506fc44a3b29c94eb0dc6fc2bec6600d161786fd233d26b1dc8970f5ab4 python-deps.patch
|
|
||||||
9f433c8051d05efb8b119e0b67b97951837aca6a8c5671646714a24023be11a9d63fa7c4e56a6c7f3911c9d8406b06cd95926de1a82925d02197dfd55daf5642 rust-lto-thin.patch
|
|
||||||
2518f2fc75b5db30058e0735f47d60fdf1e7adfaeee4b33fb2afb1bd9a616ce943fd88f4404d0802d4083703f4acf1d5ad42377218d025bc768807fbaf7e1609 sandbox-fork.patch
|
|
||||||
b7d0a6126bdf6c0569f80aabf5b37ed2c7a35712eb8a0404a2d85381552f5555d4f97d213ea26cec6a45dc2785f22439376ed5f8e78b4fd664ef0223307b333e sandbox-largefile.patch
|
|
||||||
94433c5ffdbe579c456d95c5f053f61fcbab2f652fa90bc69dcc27d9a1507a8e5c677adeadae9a7a75cc9a55184c1040737f4dfd10b279c088ef016561e6f135 sandbox-sched_setscheduler.patch
|
|
||||||
12fbe50d94624931a581314b8e6e228a1f8a4550704a6ee4f8904184ac4727efd90982e87a8fdd318e15515f9430dfc6cf7455b301e903003027b3f0afa79795 zstandard.patch
|
|
||||||
afabea91b328c5a68eaa20f9099ac7b2d0e7f2423e816b05ed168bdd326a5684fa02de08bf05c6033e9b888f02775d1b0443a00329b7a632ee399122a391c13a icu74.patch
|
afabea91b328c5a68eaa20f9099ac7b2d0e7f2423e816b05ed168bdd326a5684fa02de08bf05c6033e9b888f02775d1b0443a00329b7a632ee399122a391c13a icu74.patch
|
||||||
5fa9382c692e4bd6a2634308f24a6526fd12a60a2563d2090056d43a60505df3ec9881bbf54562e69394467529b3b0dc45955afca46ed329af03cea074fff070 lfs64.patch
|
5fa9382c692e4bd6a2634308f24a6526fd12a60a2563d2090056d43a60505df3ec9881bbf54562e69394467529b3b0dc45955afca46ed329af03cea074fff070 lfs64.patch
|
||||||
6aa925477109ed3be8f061fe1ea91caf95c7a7f5cca05c3e31322d08c3c2c044fb12bb1dbea09cd224b22e40e987571e415c6457aa5cab6a0b67f248f11b3df2 hunspell-dont-build-unused-function.patch
|
c0437a6753f3f350968fa12d250efdfe1bea77baf0e4c06b072b5cc9e78c774dbf4506bc536337030d349fb3ba4460097b75b0c7c5b8fb2d39d8b0a392948936 no-ccache-stats.patch
|
||||||
2625dcf433abbfa4c6835830b04c7b8cab72fba3a987515a6ba8e4f181332e804d98ccfbcc07e62c673be50db04c80d0f51c415173bb18cf4d18dc1364e165d0 utils-libc-lfs64.patch
|
2d8dff86212d6d2a904cbb5a5a1d6c17b89adc929fc6a3f4c6cb669f5e83ecddff5a799225319ba445a187b04d111251af75dd3ce8a039164bc14d2a432a2a04 ppc-musttail.patch
|
||||||
9de4804848ada9b9af45426699c98370e3fadf99bcb1c3c0b31c97661c9d107449048186abf454c1903bb042c5507243de9707253c1ea8e0b9fc69841c2b5a57 update-from-packed-simd-2-to-simd1.patch
|
6f60e83599041db1b707c21784197ea9816b2c936b89a274bfc24554a600981e6f28448fe41fab0942bd31acd49b1c00beb2eb0961149f2ffa6a4154be123ea7 ppc-webrtc.patch
|
||||||
|
4e40b34c5f77a1a21fe971a6fcd8a21b1a63423a3a7932a5a6e1c7a2779f9f06a561c806614a01931679a4b1c6afdfd8ae1f3cc6b673f259ccd368e8e54f6e90 python-deps.patch
|
||||||
|
1c6918dd6655d3a1251bfd4af2e1c561cbb00d540a883b4c1ebf7f5de530d754d9ac07b4b5f56cdab6c511d25c8910ec94043f5733e97501a67abffe1bafaeb1 rust-lto-thin.patch
|
||||||
|
2518f2fc75b5db30058e0735f47d60fdf1e7adfaeee4b33fb2afb1bd9a616ce943fd88f4404d0802d4083703f4acf1d5ad42377218d025bc768807fbaf7e1609 sandbox-fork.patch
|
||||||
|
b7d0a6126bdf6c0569f80aabf5b37ed2c7a35712eb8a0404a2d85381552f5555d4f97d213ea26cec6a45dc2785f22439376ed5f8e78b4fd664ef0223307b333e sandbox-largefile.patch
|
||||||
|
f8c3555ef6207933cbffbf4fc101a9b4c0d2990c0063162f0f0bde70ef0b46f86bfac42e7110695183424a87948de593f3927b2d8509ede3e4fc7bd8a1fad1ce sandbox-sched_setscheduler.patch
|
||||||
0b3f1e4b9fdc868e4738b5c81fd6c6128ce8885b260affcb9a65ff9d164d7232626ce1291aaea70132b3e3124f5e13fef4d39326b8e7173e362a823722a85127 stab.h
|
0b3f1e4b9fdc868e4738b5c81fd6c6128ce8885b260affcb9a65ff9d164d7232626ce1291aaea70132b3e3124f5e13fef4d39326b8e7173e362a823722a85127 stab.h
|
||||||
d354f48a29bfc16719f3b230b1395063239d4420f9e47522de4662392d9697b15f931ca3bf6055d100fa33d61a9a1a13477687d5eac99e50ae7dbef9882a5808 firefox.desktop
|
d354f48a29bfc16719f3b230b1395063239d4420f9e47522de4662392d9697b15f931ca3bf6055d100fa33d61a9a1a13477687d5eac99e50ae7dbef9882a5808 firefox.desktop
|
||||||
382510375b1a2fa79be0ab79e3391a021ae2c022429ffbaa7e7a69166f99bb56d01e59a1b10688592a29238f21c9d6977672bd77f9fae439b66bdfe0c55ddb15 mozilla-location.keys
|
382510375b1a2fa79be0ab79e3391a021ae2c022429ffbaa7e7a69166f99bb56d01e59a1b10688592a29238f21c9d6977672bd77f9fae439b66bdfe0c55ddb15 mozilla-location.keys
|
||||||
fc45bc3ffb9404e5338ea26a9f04807b40f6f516324972cddd48bedb91b8bd7c6b8d4e03a0209020f5e67b703bc4ff89389985791b9bd544a0fc3951e2dc338e vendor-prefs.js
|
fc45bc3ffb9404e5338ea26a9f04807b40f6f516324972cddd48bedb91b8bd7c6b8d4e03a0209020f5e67b703bc4ff89389985791b9bd544a0fc3951e2dc338e vendor-prefs.js
|
||||||
e1a0a4ff5cc1b53f13776ca11927d671426b0691e78e74a4adf2166d57bb2ae8ac409cc11a37ce5e2f680fdf05d5bc3849c33a9717aca1bb62d03ae5231a67fb zotero.desktop
|
e1a0a4ff5cc1b53f13776ca11927d671426b0691e78e74a4adf2166d57bb2ae8ac409cc11a37ce5e2f680fdf05d5bc3849c33a9717aca1bb62d03ae5231a67fb zotero.desktop
|
||||||
d635aae7d2a403778502d5d3121b4a576f5bd86e16b422ac439e458d73bb86349b444888891f0329fa6b3667608e1b81cfb9b150e97f41ec7e2dc027b7e0c06e zotero-client-7.0.0_beta68.tar.gz
|
0d33924c32271f22abd91a9a2e151cc920faa03a84f3f0ebb70d00e20d28f44915fcc9c2d1168ab10a866dc6cf23be7ef124d2c3a94406188f44ee323e44a863 zotero-client-7.0.0_beta74.tar.gz
|
||||||
f196d9d82e50a5123342634b4d49a0776ca3668fcccd8b48bb28fac94107e11a039204f13030b405309cfafe53615a7a9f5c278d2b278140cbc0fb1cecf4cebc zotero_build-modifications.patch
|
746dbabbb3ea9199d17891e2079b9256d04843f548132178862117d2334694d98e2cc981945d72f31d0e5b2c42904d371633f6905996bb580aa0b5ae95c64ddc zotero_build-modifications.patch
|
||||||
cfe583f2da7508a4e07734a42519d7c28265928fe14c14b2f650ca6e56c35cb79272b03ed3bfb81e06c4e01458b55e04d10df5cbdd549da0d97206b2c10c3530 zotero_drop-phantomjs.patch
|
cfe583f2da7508a4e07734a42519d7c28265928fe14c14b2f650ca6e56c35cb79272b03ed3bfb81e06c4e01458b55e04d10df5cbdd549da0d97206b2c10c3530 zotero_drop-phantomjs.patch
|
||||||
"
|
"
|
||||||
|
|
|
@ -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(());
|
|
||||||
}
|
|
||||||
|
|
|
@ -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>
|
|
|
@ -1,13 +0,0 @@
|
||||||
fixup of the previous- no sysctl header on musl
|
|
||||||
--
|
|
||||||
--- a/media/ffvpx/config_unix_aarch64.h
|
|
||||||
+++ b/media/ffvpx/config_unix_aarch64.h
|
|
||||||
@@ -329,7 +329,7 @@
|
|
||||||
#define HAVE_SLEEP 0
|
|
||||||
#define HAVE_STRERROR_R 1
|
|
||||||
#define HAVE_SYSCONF 1
|
|
||||||
-#define HAVE_SYSCTL 1
|
|
||||||
+#define HAVE_SYSCTL 0
|
|
||||||
#define HAVE_USLEEP 1
|
|
||||||
#define HAVE_UTGETOSTYPEFROMSTRING 0
|
|
||||||
#define HAVE_VIRTUALALLOC 0
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,18 +0,0 @@
|
||||||
#!/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
|
|
|
@ -1,13 +0,0 @@
|
||||||
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
|
|
|
@ -1,30 +0,0 @@
|
||||||
--- a/gfx/2d/Rect.h
|
|
||||||
+++ b/gfx/2d/Rect.h
|
|
||||||
@@ -14,6 +14,7 @@
|
|
||||||
#include "Tools.h"
|
|
||||||
#include "mozilla/Maybe.h"
|
|
||||||
|
|
||||||
+#include <cstdint>
|
|
||||||
#include <cmath>
|
|
||||||
|
|
||||||
namespace mozilla {
|
|
||||||
--- a/dom/media/webrtc/sdp/RsdparsaSdpGlue.cpp
|
|
||||||
+++ b/dom/media/webrtc/sdp/RsdparsaSdpGlue.cpp
|
|
||||||
@@ -3,6 +3,7 @@
|
|
||||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
||||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
||||||
+#include <cstdint>
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
#include "sdp/RsdparsaSdpInc.h"
|
|
||||||
--- a/toolkit/components/telemetry/pingsender/pingsender.cpp
|
|
||||||
+++ b/toolkit/components/telemetry/pingsender/pingsender.cpp
|
|
||||||
@@ -3,6 +3,7 @@
|
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
||||||
|
|
||||||
+#include <cstdint>
|
|
||||||
#include <cstdlib>
|
|
||||||
#include <cstring>
|
|
||||||
#include <ctime>
|
|
|
@ -1,69 +0,0 @@
|
||||||
new file mode 100644
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/extensions/spellcheck/hunspell/patches/bug1838113.patch
|
|
||||||
@@ -0,0 +1,20 @@
|
|
||||||
+diff --git a/extensions/spellcheck/hunspell/src/csutil.cxx b/extensions/spellcheck/hunspell/src/csutil.cxx
|
|
||||||
+index 48e58ff4b2677..39a54d38023c8 100644
|
|
||||||
+--- a/extensions/spellcheck/hunspell/src/csutil.cxx
|
|
||||||
++++ b/extensions/spellcheck/hunspell/src/csutil.cxx
|
|
||||||
+@@ -108,6 +108,7 @@ static struct unicode_info2* utf_tbl = NULL;
|
|
||||||
+ static int utf_tbl_count =
|
|
||||||
+ 0; // utf_tbl can be used by multiple Hunspell instances
|
|
||||||
+
|
|
||||||
++#ifndef MOZILLA_CLIENT
|
|
||||||
+ void myopen(std::ifstream& stream, const char* path, std::ios_base::openmode mode)
|
|
||||||
+ {
|
|
||||||
+ #if defined(_WIN32) && defined(_MSC_VER)
|
|
||||||
+@@ -127,6 +128,7 @@ void myopen(std::ifstream& stream, const char* path, std::ios_base::openmode mod
|
|
||||||
+ #endif
|
|
||||||
+ stream.open(path, mode);
|
|
||||||
+ }
|
|
||||||
++#endif
|
|
||||||
+
|
|
||||||
+ std::string& u16_u8(std::string& dest, const std::vector<w_char>& src) {
|
|
||||||
+ dest.clear();
|
|
||||||
--- a/extensions/spellcheck/hunspell/src/csutil.cxx
|
|
||||||
+++ b/extensions/spellcheck/hunspell/src/csutil.cxx
|
|
||||||
@@ -103,16 +103,17 @@ struct unicode_info2 {
|
|
||||||
unsigned short cupper;
|
|
||||||
unsigned short clower;
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct unicode_info2* utf_tbl = NULL;
|
|
||||||
static int utf_tbl_count =
|
|
||||||
0; // utf_tbl can be used by multiple Hunspell instances
|
|
||||||
|
|
||||||
+#ifndef MOZILLA_CLIENT
|
|
||||||
void myopen(std::ifstream& stream, const char* path, std::ios_base::openmode mode)
|
|
||||||
{
|
|
||||||
#if defined(_WIN32) && defined(_MSC_VER)
|
|
||||||
#define WIN32_LONG_PATH_PREFIX "\\\\?\\"
|
|
||||||
if (strncmp(path, WIN32_LONG_PATH_PREFIX, 4) == 0) {
|
|
||||||
int len = MultiByteToWideChar(CP_UTF8, 0, path, -1, NULL, 0);
|
|
||||||
wchar_t* buff = new wchar_t[len];
|
|
||||||
wchar_t* buff2 = new wchar_t[len];
|
|
||||||
@@ -122,16 +123,17 @@ void myopen(std::ifstream& stream, const
|
|
||||||
}
|
|
||||||
delete [] buff;
|
|
||||||
delete [] buff2;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
#endif
|
|
||||||
stream.open(path, mode);
|
|
||||||
}
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
std::string& u16_u8(std::string& dest, const std::vector<w_char>& src) {
|
|
||||||
dest.clear();
|
|
||||||
std::vector<w_char>::const_iterator u2 = src.begin();
|
|
||||||
std::vector<w_char>::const_iterator u2_max = src.end();
|
|
||||||
while (u2 < u2_max) {
|
|
||||||
signed char u8;
|
|
||||||
if (u2->h) { // > 0xFF
|
|
||||||
--- a/extensions/spellcheck/hunspell/update.sh
|
|
||||||
+++ b/extensions/spellcheck/hunspell/update.sh
|
|
||||||
@@ -29,3 +29,4 @@ rm -rf ${tmpclonedir}
|
|
||||||
cd ${hunspell_dir}/src
|
|
||||||
patch -p5 < ../patches/bug1410214.patch
|
|
||||||
patch -p5 < ../patches/bug1739761.patch
|
|
||||||
+patch -p5 < ../patches/bug1838113.patch
|
|
|
@ -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__)
|
|
13
user/zotero/no-ccache-stats.patch
Normal file
13
user/zotero/no-ccache-stats.patch
Normal file
|
@ -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:
|
30
user/zotero/ppc-musttail.patch
Normal file
30
user/zotero/ppc-musttail.patch
Normal file
|
@ -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
|
23
user/zotero/ppc-webrtc.patch
Normal file
23
user/zotero/ppc-webrtc.patch
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
Patch-Source: https://github.com/chimera-linux/cports/blob/506127954653ccebf9b82df1452cce4ed0dae3b1/contrib/thunderbird/patches/ppc64-webrtc.patch
|
||||||
|
--
|
||||||
|
commit 010bfb0441168d51e0fffe98d1f50e0602e7947f
|
||||||
|
Author: Daniel Kolesa <daniel@octaforge.org>
|
||||||
|
Date: Sat May 13 23:40:41 2023 +0200
|
||||||
|
|
||||||
|
fix webrtc on ppc64
|
||||||
|
|
||||||
|
diff --git a/third_party/libwebrtc/moz.build b/third_party/libwebrtc/moz.build
|
||||||
|
index 976cf37..d35d447 100644
|
||||||
|
--- a/third_party/libwebrtc/moz.build
|
||||||
|
+++ b/third_party/libwebrtc/moz.build
|
||||||
|
@@ -643,3 +643,10 @@ if CONFIG["CPU_ARCH"] == "x86_64" and CONFIG["OS_TARGET"] == "WINNT":
|
||||||
|
"/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/vector_math_avx2_gn",
|
||||||
|
"/third_party/libwebrtc/modules/desktop_capture/desktop_capture_differ_sse2_gn"
|
||||||
|
]
|
||||||
|
+
|
||||||
|
+if CONFIG["CPU_ARCH"] == "ppc64" and CONFIG["OS_TARGET"] == "Linux":
|
||||||
|
+
|
||||||
|
+ DIRS += [
|
||||||
|
+ "/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn",
|
||||||
|
+ "/third_party/libwebrtc/modules/desktop_capture/primitives_gn"
|
||||||
|
+ ]
|
|
@ -1,9 +1,12 @@
|
||||||
|
diff --git a/python/sites/mach.txt b/python/sites/mach.txt
|
||||||
|
index 55cc6fb..51bf67d 100644
|
||||||
--- a/python/sites/mach.txt
|
--- a/python/sites/mach.txt
|
||||||
+++ b/python/sites/mach.txt
|
+++ b/python/sites/mach.txt
|
||||||
@@ -134,4 +134,4 @@
|
@@ -141,5 +141,5 @@ pypi-optional:glean-sdk==52.7.0:telemetry will not be collected
|
||||||
|
# Mach gracefully handles the case where `psutil` is unavailable.
|
||||||
# We aren't (yet) able to pin packages in automation, so we have to
|
# 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).
|
# 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.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: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.24.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
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
set rust crate lto to thin to not use fatlto for gkrust which ooms on 32-bit
|
set rust crate lto to thin to not use fatlto for gkrust which fails sometimes
|
||||||
--- a/config/makefiles/rust.mk
|
--- a/config/makefiles/rust.mk
|
||||||
+++ b/config/makefiles/rust.mk
|
+++ b/config/makefiles/rust.mk
|
||||||
@@ -94,7 +94,7 @@
|
@@ -92,7 +92,7 @@
|
||||||
# Never enable when coverage is enabled to work around https://github.com/rust-lang/rust/issues/90045.
|
# Never enable when coverage is enabled to work around https://github.com/rust-lang/rust/issues/90045.
|
||||||
ifndef MOZ_CODE_COVERAGE
|
ifndef MOZ_CODE_COVERAGE
|
||||||
ifeq (,$(findstring gkrust_gtest,$(RUST_LIBRARY_FILE)))
|
ifeq (,$(findstring gkrust_gtest,$(RUST_LIBRARY_FILE)))
|
||||||
-cargo_rustc_flags += -Clto
|
-cargo_rustc_flags += -Clto$(if $(filter full,$(MOZ_LTO_RUST_CROSS)),=fat)
|
||||||
+cargo_rustc_flags += -Clto=thin
|
+cargo_rustc_flags += -Clto=thin
|
||||||
endif
|
endif
|
||||||
# We need -Cembed-bitcode=yes for all crates when using -Clto.
|
# We need -Cembed-bitcode=yes for all crates when using -Clto.
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
upstream bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1657849
|
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 ed958bc..9824433 100644
|
||||||
--- a/security/sandbox/linux/SandboxFilter.cpp
|
--- a/security/sandbox/linux/SandboxFilter.cpp
|
||||||
+++ b/security/sandbox/linux/SandboxFilter.cpp
|
+++ b/security/sandbox/linux/SandboxFilter.cpp
|
||||||
@@ -1694,10 +1694,10 @@
|
@@ -1751,6 +1751,6 @@ class GMPSandboxPolicy : public SandboxPolicyCommon {
|
||||||
return Allow();
|
|
||||||
case __NR_sched_get_priority_min:
|
|
||||||
case __NR_sched_get_priority_max:
|
case __NR_sched_get_priority_max:
|
||||||
+ case __NR_sched_setscheduler:
|
+ case __NR_sched_setscheduler:
|
||||||
return Allow();
|
return Allow();
|
||||||
|
@ -12,5 +12,13 @@ upstream bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1657849
|
||||||
- case __NR_sched_setscheduler: {
|
- case __NR_sched_setscheduler: {
|
||||||
+ case __NR_sched_getscheduler: {
|
+ case __NR_sched_getscheduler: {
|
||||||
Arg<pid_t> pid(0);
|
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();
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,13 +0,0 @@
|
||||||
diff --git a/third_party/rust/getrandom/src/util_libc.rs.orig b/third_party/rust/getrandom/src/util_libc.rs
|
|
||||||
index 3cecb1d..6316b38 100644
|
|
||||||
--- a/third_party/rust/getrandom/src/util_libc.rs.orig
|
|
||||||
+++ b/third_party/rust/getrandom/src/util_libc.rs
|
|
||||||
@@ -101,7 +101,7 @@ impl Weak {
|
|
||||||
|
|
||||||
cfg_if! {
|
|
||||||
if #[cfg(any(target_os = "linux", target_os = "emscripten"))] {
|
|
||||||
- use libc::open64 as open;
|
|
||||||
+ use libc::open as open;
|
|
||||||
} else {
|
|
||||||
use libc::open;
|
|
||||||
}
|
|
|
@ -43,66 +43,6 @@ index 649d629..7d078b8 100755
|
||||||
cp "$CALLDIR/linux/icons/icon64.png" "$APPDIR/icons/"
|
cp "$CALLDIR/linux/icons/icon64.png" "$APPDIR/icons/"
|
||||||
cp "$CALLDIR/linux/icons/icon128.png" "$APPDIR/icons/"
|
cp "$CALLDIR/linux/icons/icon128.png" "$APPDIR/icons/"
|
||||||
|
|
||||||
diff --git a/zotero/app/scripts/fetch_xulrunner b/zotero/app/scripts/fetch_xulrunner
|
|
||||||
index 8b3d918..120b085 100755
|
|
||||||
--- a/zotero/app/scripts/fetch_xulrunner
|
|
||||||
+++ b/zotero/app/scripts/fetch_xulrunner
|
|
||||||
@@ -132,15 +132,6 @@ function modify_omni {
|
|
||||||
# Continue using app.update.auto in prefs.js on Windows
|
|
||||||
replace_line 'PER_INSTALLATION_PREFS_PLATFORMS = \["win"\]' 'PER_INSTALLATION_PREFS_PLATFORMS = []' modules/UpdateUtils.jsm
|
|
||||||
|
|
||||||
- # Prompt if major update is available instead of installing automatically on restart
|
|
||||||
- replace_line 'if \(!updateAuto\) \{' 'if (update.type == "major") {
|
|
||||||
- LOG("UpdateService:_selectAndInstallUpdate - prompting because it is a major update");
|
|
||||||
- AUSTLMY.pingCheckCode(this._pingSuffix, AUSTLMY.CHK_SHOWPROMPT_PREF);
|
|
||||||
- Services.obs.notifyObservers(update, "update-available", "show-prompt");
|
|
||||||
- return;
|
|
||||||
- }
|
|
||||||
- if (!updateAuto) {' modules/UpdateService.jsm
|
|
||||||
-
|
|
||||||
# Avoid console warning about resource://gre/modules/FxAccountsCommon.js
|
|
||||||
replace_line 'const logins = this._data.logins;' 'const logins = this._data.logins; if (this._data.logins.length != -1) return;' modules/LoginStore.jsm
|
|
||||||
|
|
||||||
@@ -470,36 +461,11 @@ fi
|
|
||||||
|
|
||||||
if [ $BUILD_LINUX == 1 ]; then
|
|
||||||
GECKO_VERSION="$GECKO_VERSION_LINUX"
|
|
||||||
- DOWNLOAD_URL="https://ftp.mozilla.org/pub/firefox/releases/$GECKO_VERSION"
|
|
||||||
|
|
||||||
+ pushd firefox
|
|
||||||
+ modify_omni linux64
|
|
||||||
+ popd
|
|
||||||
|
|
||||||
- # Include 32-bit build if not in CI
|
|
||||||
- if [[ "${CI:-}" = "1" ]] || [[ "${SKIP_32:-}" = "1" ]]; then
|
|
||||||
- arches="x86_64"
|
|
||||||
- else
|
|
||||||
- arches="i686 x86_64"
|
|
||||||
- fi
|
|
||||||
- for arch in $arches; do
|
|
||||||
- xdir="firefox-$arch"
|
|
||||||
- rm -rf $xdir
|
|
||||||
-
|
|
||||||
- archived_file="firefox-$GECKO_VERSION-$arch.tar.bz2"
|
|
||||||
- if [ -e "$archived_file" ]; then
|
|
||||||
- echo "Using $archived_file"
|
|
||||||
- cp "$archived_file" "firefox-$GECKO_VERSION.tar.bz2"
|
|
||||||
- else
|
|
||||||
- curl -O "$DOWNLOAD_URL/linux-$arch/en-US/firefox-$GECKO_VERSION.tar.bz2"
|
|
||||||
- fi
|
|
||||||
-
|
|
||||||
- tar xvf firefox-$GECKO_VERSION.tar.bz2
|
|
||||||
- mv firefox firefox-$arch
|
|
||||||
-
|
|
||||||
- pushd firefox-$arch
|
|
||||||
- modify_omni
|
|
||||||
- popd
|
|
||||||
- echo $($SCRIPT_DIR/xulrunner_hash -p l) > hash-linux
|
|
||||||
- rm "firefox-$GECKO_VERSION.tar.bz2"
|
|
||||||
- done
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo Done
|
|
||||||
diff --git a/zotero/app/build.sh.orig b/zotero/app/build.sh
|
diff --git a/zotero/app/build.sh.orig b/zotero/app/build.sh
|
||||||
index 702f499..3ee7e34 100755
|
index 702f499..3ee7e34 100755
|
||||||
--- a/zotero/app/build.sh.orig
|
--- a/zotero/app/build.sh.orig
|
||||||
|
@ -142,3 +82,63 @@ index 702f499..3ee7e34 100755
|
||||||
rm -rf "$APPDIR"
|
rm -rf "$APPDIR"
|
||||||
mkdir "$APPDIR"
|
mkdir "$APPDIR"
|
||||||
|
|
||||||
|
diff --git a/zotero/app/scripts/fetch_xulrunner.orig b/zotero/app/scripts/fetch_xulrunner
|
||||||
|
index 2b57bfb..2bbc110 100755
|
||||||
|
--- a/zotero/app/scripts/fetch_xulrunner.orig
|
||||||
|
+++ b/zotero/app/scripts/fetch_xulrunner
|
||||||
|
@@ -134,15 +134,6 @@ function modify_omni {
|
||||||
|
# Continue using app.update.auto in prefs.js on Windows
|
||||||
|
replace_line 'PER_INSTALLATION_PREFS_PLATFORMS = \["win"\]' 'PER_INSTALLATION_PREFS_PLATFORMS = []' modules/UpdateUtils.sys.mjs
|
||||||
|
|
||||||
|
- # Prompt if major update is available instead of installing automatically on restart
|
||||||
|
- replace_line 'if \(!updateAuto\) \{' 'if (update.type == "major") {
|
||||||
|
- LOG("UpdateService:_selectAndInstallUpdate - prompting because it is a major update");
|
||||||
|
- AUSTLMY.pingCheckCode(this._pingSuffix, AUSTLMY.CHK_SHOWPROMPT_PREF);
|
||||||
|
- Services.obs.notifyObservers(update, "update-available", "show-prompt");
|
||||||
|
- return;
|
||||||
|
- }
|
||||||
|
- if (!updateAuto) {' modules/UpdateService.sys.mjs
|
||||||
|
-
|
||||||
|
# Avoid console warning about resource://gre/modules/FxAccountsCommon.js
|
||||||
|
replace_line 'const logins = this._data.logins;' 'const logins = this._data.logins; if (this._data.logins.length != -1) return;' modules/LoginStore.sys.mjs
|
||||||
|
|
||||||
|
@@ -516,36 +507,10 @@ fi
|
||||||
|
|
||||||
|
if [ $BUILD_LINUX == 1 ]; then
|
||||||
|
GECKO_VERSION="$GECKO_VERSION_LINUX"
|
||||||
|
- DOWNLOAD_URL="https://ftp.mozilla.org/pub/firefox/releases/$GECKO_VERSION"
|
||||||
|
|
||||||
|
-
|
||||||
|
- # Include 32-bit build if not in CI
|
||||||
|
- if [[ "${CI:-}" = "1" ]] || [[ "${SKIP_32:-}" = "1" ]]; then
|
||||||
|
- arches="x86_64"
|
||||||
|
- else
|
||||||
|
- arches="i686 x86_64"
|
||||||
|
- fi
|
||||||
|
- for arch in $arches; do
|
||||||
|
- xdir="firefox-$arch"
|
||||||
|
- rm -rf $xdir
|
||||||
|
-
|
||||||
|
- archived_file="firefox-$GECKO_VERSION-$arch.tar.bz2"
|
||||||
|
- if [ -e "$archived_file" ]; then
|
||||||
|
- echo "Using $archived_file"
|
||||||
|
- cp "$archived_file" "firefox-$GECKO_VERSION.tar.bz2"
|
||||||
|
- else
|
||||||
|
- curl -O "$DOWNLOAD_URL/linux-$arch/en-US/firefox-$GECKO_VERSION.tar.bz2"
|
||||||
|
- fi
|
||||||
|
-
|
||||||
|
- tar xvf firefox-$GECKO_VERSION.tar.bz2
|
||||||
|
- mv firefox firefox-$arch
|
||||||
|
-
|
||||||
|
- pushd firefox-$arch
|
||||||
|
- modify_omni $arch
|
||||||
|
- popd
|
||||||
|
- echo $($SCRIPT_DIR/xulrunner_hash -p l) > hash-linux
|
||||||
|
- rm "firefox-$GECKO_VERSION.tar.bz2"
|
||||||
|
- done
|
||||||
|
+ pushd firefox
|
||||||
|
+ modify_omni linux64
|
||||||
|
+ popd
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo Done
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
--- 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