diff --git a/0001-GLIBCXX-fix-for-GCC-12.patch b/0001-GLIBCXX-fix-for-GCC-12.patch deleted file mode 100644 index 37d6f500bf03dd5e01060dd117630f69e8d2693d..0000000000000000000000000000000000000000 --- a/0001-GLIBCXX-fix-for-GCC-12.patch +++ /dev/null @@ -1,44 +0,0 @@ -From efd5bc0715e5477318be95a76811cda0a89e8289 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= -Date: Fri, 4 Mar 2022 12:00:26 +0100 -Subject: [PATCH] GLIBCXX fix for GCC 12? - ---- - build/unix/stdc++compat/stdc++compat.cpp | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/build/unix/stdc++compat/stdc++compat.cpp b/build/unix/stdc++compat/stdc++compat.cpp -index 0180f6bcfa998..8d7a542ff11f0 100644 ---- a/build/unix/stdc++compat/stdc++compat.cpp -+++ b/build/unix/stdc++compat/stdc++compat.cpp -@@ -24,6 +24,7 @@ - GLIBCXX_3.4.27 is from gcc 10 - GLIBCXX_3.4.28 is from gcc 10 - GLIBCXX_3.4.29 is from gcc 11 -+ GLIBCXX_3.4.30 is from gcc 12 - - This file adds the necessary compatibility tricks to avoid symbols with - version GLIBCXX_3.4.20 and bigger, keeping binary compatibility with -@@ -69,6 +70,19 @@ void __attribute__((weak)) __throw_bad_array_new_length() { MOZ_CRASH(); } - } // namespace std - #endif - -+#if _GLIBCXX_RELEASE >= 12 -+namespace std { -+ -+/* This avoids the GLIBCXX_3.4.30 symbol version. */ -+void __attribute__((weak)) -+__glibcxx_assert_fail(const char* __file, int __line, const char* __function, -+ const char* __condition) { -+ MOZ_CRASH(); -+} -+ -+} // namespace std -+#endif -+ - /* While we generally don't build with exceptions, we have some host tools - * that do use them. libstdc++ from GCC 5.0 added exception constructors with - * char const* argument. Older versions only have a constructor with --- -2.35.1 - diff --git a/README.md b/README.md deleted file mode 100644 index 7342728d557c602f51c6d278bba9f3dd9faaf356..0000000000000000000000000000000000000000 --- a/README.md +++ /dev/null @@ -1,11 +0,0 @@ -Anolis OS -======================================= -# 代码仓库说明 -## 分支说明 ->进行代码开发工作时,请注意选择当前版本对应的分支 -* aX分支为对应大版本的主分支,如a8分支对应当前最新版本 -* aX.Y分支为对应小版本的维护分支,如a8.2分支对应8.2版本 -## 开发流程 -1. 首先fork目标分支到自己的namespace -2. 在自己的fork分支上做出修改 -3. 向对应的仓库中提交merge request,源分支为fork分支 diff --git a/add-loongarch64-support-for-authenticator.patch b/add-loongarch64-support-for-authenticator.patch deleted file mode 100644 index d542a894910289c1638c7115e2e00efc4b292237..0000000000000000000000000000000000000000 --- a/add-loongarch64-support-for-authenticator.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 4d690fe17e05098512a2d30634db73f495620599 Mon Sep 17 00:00:00 2001 -From: Wenlong Zhang -Date: Thu, 14 Dec 2023 08:39:08 +0000 -Subject: [PATCH] add loongarch64 support for authenticator - ---- - third_party/rust/authenticator/.cargo-checksum.json | 2 +- - third_party/rust/authenticator/build.rs | 2 ++ - .../rust/authenticator/src/transport/linux/hidwrapper.rs | 3 +++ - .../authenticator/src/transport/linux/ioctl_loongarch64.rs | 5 +++++ - 4 files changed, 11 insertions(+), 1 deletion(-) - create mode 100644 third_party/rust/authenticator/src/transport/linux/ioctl_loongarch64.rs - -diff --git a/third_party/rust/authenticator/.cargo-checksum.json b/third_party/rust/authenticator/.cargo-checksum.json -index 080c46c4c0..98bec19e3a 100644 ---- a/third_party/rust/authenticator/.cargo-checksum.json -+++ b/third_party/rust/authenticator/.cargo-checksum.json -@@ -1 +1 @@ --{"files":{"Cargo.lock":"803a1ca7735f93e1d952a07291a6976db787b6530bc67f9e3d2ae2dcaf8a90cc","Cargo.toml":"e8f07adde7f2c71a96cbe3809ab605a9082b8ccaf8d2a69aacb6d5db90fddcdc","Cross.toml":"8d132da818d48492aa9f4b78a348f0df3adfae45d988d42ebd6be8a5adadb6c3","LICENSE":"e866c8f5864d4cacfe403820e722e9dc03fe3c7565efa5e4dad9051d827bb92a","README.md":"c87d9c7cc44f1dd4ef861a3a9f8cd2eb68aedd3814768871f5fb63c2070806cd","build.rs":"01092254718e4cd5d6bffcd64d55cc3240dc00e79f3d7344a5dc4abf6c27bca6","examples/ctap2.rs":"51709e50dd23477f6f91225c09fca08824a00abdc851727b2f3bd9dcd746378e","examples/ctap2_discoverable_creds.rs":"952207c39bad1995998c686f99fbca39268e930099b0086a09adeb5d12931df6","examples/interactive_management.rs":"27d2578fca7672477584bb3a74db182295c85e4aa6ae2d8edfd849fc0018c413","examples/reset.rs":"b13d3a2ed3544018ede8660ec0cc79732139e792d4e55c2c6fb517ad376b36ad","examples/set_pin.rs":"991d9bd66fd6bdd9dd8627ed710fe100a3dfb65b968031f768ee9a28e1e995d7","examples/test_exclude_list.rs":"20577d6887b00c99d2ae404e1b1f64c746ecc774bd2f9f0f8d1c5bb6a6f30292","rustfmt.toml":"ceb6615363d6fff16426eb56f5727f98a7f7ed459ba9af735b1d8b672e2c3b9b","src/authenticatorservice.rs":"dc756ae9d420dac187b04afbb4831527c12fa307ef072f1c1cb4480df9cbda5f","src/consts.rs":"44fb7c396dc87d1657d1feed08e956fc70608c0b06a034716b626419b442bcfe","src/crypto/dummy.rs":"9cc6be0dc1e28c7328121e7a4bf435211ae8b1455784472b24993571c4009579","src/crypto/mod.rs":"e4342dd93fd41bf48fa26386188ed92db5f908ad4d69f32f080a65228c6d5390","src/crypto/nss.rs":"2bf33898728760f194f204876450d0906b47907d259270f6e3d43c62a709c99a","src/crypto/openssl.rs":"ef6e4dbcc7230137e505e3fc4ad37e102e6b26b37470afd0f4709a297b3aa546","src/ctap2/attestation.rs":"e3c581154fb6bd4e4d8bd2326515864849b21766f5344e2d955d607b360fc930","src/ctap2/client_data.rs":"04ee84b34e91c988183871b4975fc08e12234965187c793ad26d0d82ed44642f","src/ctap2/commands/client_pin.rs":"7f3a49b23592e985b8f32d43688593ff7411a05cb594444e24851c13f093cdef","src/ctap2/commands/get_assertion.rs":"e9cd68cff2ee54156af6e3e424691a06354aafffcc374a40ccc9622f030c4999","src/ctap2/commands/get_info.rs":"79117c39d280445fb17be057af2f45ec1d80651ea1c8b478e07118ade808291b","src/ctap2/commands/get_next_assertion.rs":"8a8fa69cb4079a21ff4734067e74784b2bfee3c20ddcc0b35675ce77a3d83ae9","src/ctap2/commands/get_version.rs":"958c273c6156af102bba515de42e4a5ae43f36b4d2d1814d922c269c500f6ce2","src/ctap2/commands/make_credentials.rs":"524cb3378fcc2b08696ab25bf5473e149af307d18ef503a4ee971b4b7e087ff3","src/ctap2/commands/mod.rs":"916eb63b3e46968a9e79d088dd217c2b80dc1c4d14beaf12803e91b7987b6c32","src/ctap2/commands/reset.rs":"45500500c900124f96269679862ceeb18e87111096d322c87c766f2694e576fc","src/ctap2/commands/selection.rs":"7832d62bf37ddbbaf996d84f905c2cdca7dceb529c8f9f1fe82eb288da886068","src/ctap2/mod.rs":"5953ee33ee5930437f9d91299f8a6fdbc21bc62297ae4194901893ef0a5ac82a","src/ctap2/preflight.rs":"1cd41e948955a8bcb22a2e55e254dad1be74590b6016437914e93a2639222aef","src/ctap2/server.rs":"61e2afa1bc3ce1d61743073f14c1a385d064e5deed2b8a194e32e0ccbd4243ad","src/ctap2/utils.rs":"ad0aa36a0dbeb510b7f37789329f1957eab206eb529dc083e6176b142984e26e","src/errors.rs":"a99e5fbdad315ba1589b116fc227310996ef900498b595545228be35744b2038","src/lib.rs":"d42fc78ab81b6fdd66ebe35951a4395a3656f557795cff4c8bfcc54199cabfcd","src/manager.rs":"d72f8523d0a549487504ef6d370aee9132ad7436aaae777e6d65a0a03f3c0c27","src/statecallback.rs":"6b16f97176db1ae3fc3851fe8394e4ffc324bc6fe59313845ac3a88132fd52f1","src/statemachine.rs":"3b1b08efda156bc8c00bad27096a95177217ad77cb041530a03b8903ba51d7e0","src/status_update.rs":"d032524f2c36c5a32db9dd424decf4577cea65adceca91bb1dfcdc07c58289cb","src/transport/device_selector.rs":"c703aa8e59b0b7ac9d11be0aac434dffda8b0c91e1a84298c48e598978e1576e","src/transport/errors.rs":"5af7cb8d22ffa63bf4264d182a0f54b9b3a2cc9d19d832b3495857229f9a2875","src/transport/freebsd/device.rs":"f41c7cf29c48bf2b403cf460e6387864372a134d6daeefc5c3afc3f40d0d4575","src/transport/freebsd/mod.rs":"42dcb57fbeb00140003a8ad39acac9b547062b8f281a3fa5deb5f92a6169dde6","src/transport/freebsd/monitor.rs":"a6b34af4dd2e357a5775b1f3a723766107c11ef98dba859b1188ed08e0e450a2","src/transport/freebsd/transaction.rs":"ec28475a70dded260f9a7908c7f88dd3771f5d64b9a5dda835411d13b713c39a","src/transport/freebsd/uhid.rs":"a194416a8bc5d428c337f8d96a2248769ca190810852bbe5ee686ab595d8eb4c","src/transport/hid.rs":"033e0f1bf6428a1d4077e5abb53dbfa193ef72dd8a98b7666d7b5fb45a6570f0","src/transport/hidproto.rs":"9d490f161807b75f4d7d5096355006627c1f47c0d90fca53bade3692efc92a2d","src/transport/linux/device.rs":"e79bd06d98723a0d7e4f25b7cf2ac3e0260b10e52d2b0695909d2932288e10a4","src/transport/linux/hidraw.rs":"c7a0df9b4e51cb2736218ffffa02b2b2547b7c515d69f9bae2c9a8c8f1cb547b","src/transport/linux/hidwrapper.h":"72785db3a9b27ea72b6cf13a958fee032af54304522d002f56322473978a20f9","src/transport/linux/hidwrapper.rs":"753c7459dbb73befdd186b6269ac33f7a4537b4c935928f50f2b2131756e787d","src/transport/linux/ioctl_aarch64le.rs":"2d8b265cd39a9f46816f83d5a5df0701c13eb842bc609325bad42ce50add3bf0","src/transport/linux/ioctl_armle.rs":"2d8b265cd39a9f46816f83d5a5df0701c13eb842bc609325bad42ce50add3bf0","src/transport/linux/ioctl_mips64le.rs":"fbda309934ad8bda689cd4fb5c0ca696fe26dedb493fe9d5a5322c3047d474fd","src/transport/linux/ioctl_mipsbe.rs":"fbda309934ad8bda689cd4fb5c0ca696fe26dedb493fe9d5a5322c3047d474fd","src/transport/linux/ioctl_mipsle.rs":"fbda309934ad8bda689cd4fb5c0ca696fe26dedb493fe9d5a5322c3047d474fd","src/transport/linux/ioctl_powerpc64be.rs":"fbda309934ad8bda689cd4fb5c0ca696fe26dedb493fe9d5a5322c3047d474fd","src/transport/linux/ioctl_powerpc64le.rs":"fbda309934ad8bda689cd4fb5c0ca696fe26dedb493fe9d5a5322c3047d474fd","src/transport/linux/ioctl_powerpcbe.rs":"fbda309934ad8bda689cd4fb5c0ca696fe26dedb493fe9d5a5322c3047d474fd","src/transport/linux/ioctl_riscv64.rs":"2d8b265cd39a9f46816f83d5a5df0701c13eb842bc609325bad42ce50add3bf0","src/transport/linux/ioctl_s390xbe.rs":"2d8b265cd39a9f46816f83d5a5df0701c13eb842bc609325bad42ce50add3bf0","src/transport/linux/ioctl_x86.rs":"2d8b265cd39a9f46816f83d5a5df0701c13eb842bc609325bad42ce50add3bf0","src/transport/linux/ioctl_x86_64.rs":"2d8b265cd39a9f46816f83d5a5df0701c13eb842bc609325bad42ce50add3bf0","src/transport/linux/mod.rs":"446e435126d2a58f167f648dd95cba28e8ac9c17f1f799e1eaeab80ea800fc57","src/transport/linux/monitor.rs":"5e3ec2618dd74027ae6ca1527991254e3271cce59106d4920ce0414094e22f64","src/transport/linux/transaction.rs":"ec28475a70dded260f9a7908c7f88dd3771f5d64b9a5dda835411d13b713c39a","src/transport/macos/device.rs":"f508d0585079ecf87a73d6135c52e8b5a887fbf16e241676d51a8099a8001a81","src/transport/macos/iokit.rs":"7dc4e7bbf8e42e2fcde0cee8e48d14d6234a5a910bd5d3c4e966d8ba6b73992f","src/transport/macos/mod.rs":"333e561554fc901d4f6092f6e4c85823e2b0c4ff31c9188d0e6d542b71a0a07c","src/transport/macos/monitor.rs":"e02288454bb4010e06b705d82646abddb3799f0cd655f574aa19f9d91485a4a2","src/transport/macos/transaction.rs":"9dcdebd13d5fd5a185b5ad777a80c825a6ba5e76b141c238aa115b451b9a72fa","src/transport/mock/device.rs":"582b2b55f13d95dd9f1127e3dde49d2137a5ca020f9c1fa1ffa5c4083d05c0e7","src/transport/mock/mod.rs":"9c4c87efd19adddc1a91c699a6c328063cfbac5531b76346a5ff92e986aded8f","src/transport/mock/transaction.rs":"be3ed8c389dfa04122364b82515edd76fad6f5d5f72d15cacd45a84fb8397292","src/transport/mod.rs":"e28d72b6f3fdaff21f940c4db213067cd94f5832f864ecaad1c9901d5aea9b79","src/transport/netbsd/device.rs":"a7dec83b5040faf1a8ddb37e9fc2b45b9b12814be4802b3b351eff081d1b80c3","src/transport/netbsd/fd.rs":"5464019025d03ea2a39c82f76b238bbbdb0ea63f5a5fc7c9d974e235139cd53b","src/transport/netbsd/mod.rs":"b1c52aa29537330cebe67427062d6c94871cab2a9b0c04b2305d686f07e88fd5","src/transport/netbsd/monitor.rs":"fb2917e4ba53cc9867987a539061f82d011f4c6e478df1157d965d32df2eb922","src/transport/netbsd/transaction.rs":"ec28475a70dded260f9a7908c7f88dd3771f5d64b9a5dda835411d13b713c39a","src/transport/netbsd/uhid.rs":"d15be35e2413240066a8f086bb8846b08a6a92bf6a1941c3eec1329dd3a4f9ce","src/transport/openbsd/device.rs":"47d8dfeb12c33e6cada2b2cd76476827059c797d8a16f2c4aea6e78d32ebab46","src/transport/openbsd/mod.rs":"514274d414042ff84b3667a41a736e78581e22fda87ccc97c2bc05617e381a30","src/transport/openbsd/monitor.rs":"2e0ba6ecc69b450be9cbfd21a7c65036ed2ce593b12363596d3eae0b5bfb79e8","src/transport/openbsd/transaction.rs":"ec28475a70dded260f9a7908c7f88dd3771f5d64b9a5dda835411d13b713c39a","src/transport/stub/device.rs":"aa21711d6690ed68bd878b28463172ba69c6324be7afabeccb1f07b4831cb020","src/transport/stub/mod.rs":"6a7fec504a52d403b0241b18cd8b95088a31807571f4c0a67e4055afc74f4453","src/transport/stub/transaction.rs":"c9a3ade9562468163f28fd51e7ff3e0bf5854b7edade9e987000d11c5d0e62d2","src/transport/windows/device.rs":"148b1572ed5fa8d476efbdb2a3a35608ec23012d6a805129f3c25c453bab4b7a","src/transport/windows/mod.rs":"218e7f2fe91ecb390c12bba5a5ffdad2c1f0b22861c937f4d386262e5b3dd617","src/transport/windows/monitor.rs":"95913d49e7d83482e420493d89b53ffceb6a49e646a87de934dff507b3092b4c","src/transport/windows/transaction.rs":"ec28475a70dded260f9a7908c7f88dd3771f5d64b9a5dda835411d13b713c39a","src/transport/windows/winapi.rs":"b2a4cc85f14e39cadfbf068ee001c9d776f028d3cf09cb926d4364c5b437c112","src/u2fprotocol.rs":"e61ac223aab79ae82383cd32a23213d18461e229c448373bf2483357a9eae69e","src/u2ftypes.rs":"8511c6f04f69670ddd403178a46060644a27128ca4077a9a3e00bc6671e3864b","src/util.rs":"cf37c4c3caf6dde4fc3cf6f5f297ed3c0f13bcb50fb0e8955899fc837483ef31","src/virtualdevices/mod.rs":"2c7df7691d5c150757304241351612aed4260d65b70ab0f483edbc1a5cfb5674","src/virtualdevices/software_u2f.rs":"83e63c0c4a597e71d87b5cd1f33a49646d00b3062edbdd05c51623b80fb60168","src/virtualdevices/webdriver/mod.rs":"4a36e6dfa9f45f941d863b4039bfbcfa8eaca660bd6ed78aeb1a2962db64be5a","src/virtualdevices/webdriver/testtoken.rs":"7146e02f1a5dad2c8827dd11c12ee408c0e42a0706ac65f139998feffd42570f","src/virtualdevices/webdriver/virtualmanager.rs":"7205a0397833628fc0847aa942a6a314dc1e23306858b546053e0de6a360ebe1","src/virtualdevices/webdriver/web_api.rs":"9032525af458b6fe9a3274c36b6ef8c791ecc4ec46d38ae36583fc9a4535b59d","testing/cross/powerpc64le-unknown-linux-gnu.Dockerfile":"d7463ff4376e3e0ca3fed879fab4aa975c4c0a3e7924c5b88aef9381a5d013de","testing/cross/x86_64-unknown-linux-gnu.Dockerfile":"11c79c04b07a171b0c9b63ef75fa75f33263ce76e3c1eda0879a3e723ebd0c24","testing/run_cross.sh":"cc2a7e0359f210eba2e7121f81eb8ab0125cea6e0d0f2698177b0fe2ad0c33d8","webdriver-tools/requirements.txt":"8236aa3dedad886f213c9b778fec80b037212d30e640b458984110211d546005","webdriver-tools/webdriver-driver.py":"82327c26ba271d1689acc87b612ab8436cb5475f0a3c0dba7baa06e7f6f5e19c"},"package":"aa0e182b77b6b19eaf9c7b69fddf3be970169ec6d34eca3f5d682ab948727e57"} -\ No newline at end of file -+{"files":{"Cargo.lock":"803a1ca7735f93e1d952a07291a6976db787b6530bc67f9e3d2ae2dcaf8a90cc","Cargo.toml":"e8f07adde7f2c71a96cbe3809ab605a9082b8ccaf8d2a69aacb6d5db90fddcdc","Cross.toml":"8d132da818d48492aa9f4b78a348f0df3adfae45d988d42ebd6be8a5adadb6c3","LICENSE":"e866c8f5864d4cacfe403820e722e9dc03fe3c7565efa5e4dad9051d827bb92a","README.md":"c87d9c7cc44f1dd4ef861a3a9f8cd2eb68aedd3814768871f5fb63c2070806cd","build.rs":"5b909f42e52ed2056afa3693544ef1c1dc5e90d00e7d8730175a228bd0233b43","examples/ctap2.rs":"51709e50dd23477f6f91225c09fca08824a00abdc851727b2f3bd9dcd746378e","examples/ctap2_discoverable_creds.rs":"952207c39bad1995998c686f99fbca39268e930099b0086a09adeb5d12931df6","examples/interactive_management.rs":"27d2578fca7672477584bb3a74db182295c85e4aa6ae2d8edfd849fc0018c413","examples/reset.rs":"b13d3a2ed3544018ede8660ec0cc79732139e792d4e55c2c6fb517ad376b36ad","examples/set_pin.rs":"991d9bd66fd6bdd9dd8627ed710fe100a3dfb65b968031f768ee9a28e1e995d7","examples/test_exclude_list.rs":"20577d6887b00c99d2ae404e1b1f64c746ecc774bd2f9f0f8d1c5bb6a6f30292","rustfmt.toml":"ceb6615363d6fff16426eb56f5727f98a7f7ed459ba9af735b1d8b672e2c3b9b","src/authenticatorservice.rs":"dc756ae9d420dac187b04afbb4831527c12fa307ef072f1c1cb4480df9cbda5f","src/consts.rs":"44fb7c396dc87d1657d1feed08e956fc70608c0b06a034716b626419b442bcfe","src/crypto/dummy.rs":"9cc6be0dc1e28c7328121e7a4bf435211ae8b1455784472b24993571c4009579","src/crypto/mod.rs":"e4342dd93fd41bf48fa26386188ed92db5f908ad4d69f32f080a65228c6d5390","src/crypto/nss.rs":"2bf33898728760f194f204876450d0906b47907d259270f6e3d43c62a709c99a","src/crypto/openssl.rs":"ef6e4dbcc7230137e505e3fc4ad37e102e6b26b37470afd0f4709a297b3aa546","src/ctap2/attestation.rs":"e3c581154fb6bd4e4d8bd2326515864849b21766f5344e2d955d607b360fc930","src/ctap2/client_data.rs":"04ee84b34e91c988183871b4975fc08e12234965187c793ad26d0d82ed44642f","src/ctap2/commands/client_pin.rs":"7f3a49b23592e985b8f32d43688593ff7411a05cb594444e24851c13f093cdef","src/ctap2/commands/get_assertion.rs":"e9cd68cff2ee54156af6e3e424691a06354aafffcc374a40ccc9622f030c4999","src/ctap2/commands/get_info.rs":"79117c39d280445fb17be057af2f45ec1d80651ea1c8b478e07118ade808291b","src/ctap2/commands/get_next_assertion.rs":"8a8fa69cb4079a21ff4734067e74784b2bfee3c20ddcc0b35675ce77a3d83ae9","src/ctap2/commands/get_version.rs":"958c273c6156af102bba515de42e4a5ae43f36b4d2d1814d922c269c500f6ce2","src/ctap2/commands/make_credentials.rs":"524cb3378fcc2b08696ab25bf5473e149af307d18ef503a4ee971b4b7e087ff3","src/ctap2/commands/mod.rs":"916eb63b3e46968a9e79d088dd217c2b80dc1c4d14beaf12803e91b7987b6c32","src/ctap2/commands/reset.rs":"45500500c900124f96269679862ceeb18e87111096d322c87c766f2694e576fc","src/ctap2/commands/selection.rs":"7832d62bf37ddbbaf996d84f905c2cdca7dceb529c8f9f1fe82eb288da886068","src/ctap2/mod.rs":"5953ee33ee5930437f9d91299f8a6fdbc21bc62297ae4194901893ef0a5ac82a","src/ctap2/preflight.rs":"1cd41e948955a8bcb22a2e55e254dad1be74590b6016437914e93a2639222aef","src/ctap2/server.rs":"61e2afa1bc3ce1d61743073f14c1a385d064e5deed2b8a194e32e0ccbd4243ad","src/ctap2/utils.rs":"ad0aa36a0dbeb510b7f37789329f1957eab206eb529dc083e6176b142984e26e","src/errors.rs":"a99e5fbdad315ba1589b116fc227310996ef900498b595545228be35744b2038","src/lib.rs":"d42fc78ab81b6fdd66ebe35951a4395a3656f557795cff4c8bfcc54199cabfcd","src/manager.rs":"d72f8523d0a549487504ef6d370aee9132ad7436aaae777e6d65a0a03f3c0c27","src/statecallback.rs":"6b16f97176db1ae3fc3851fe8394e4ffc324bc6fe59313845ac3a88132fd52f1","src/statemachine.rs":"3b1b08efda156bc8c00bad27096a95177217ad77cb041530a03b8903ba51d7e0","src/status_update.rs":"d032524f2c36c5a32db9dd424decf4577cea65adceca91bb1dfcdc07c58289cb","src/transport/device_selector.rs":"c703aa8e59b0b7ac9d11be0aac434dffda8b0c91e1a84298c48e598978e1576e","src/transport/errors.rs":"5af7cb8d22ffa63bf4264d182a0f54b9b3a2cc9d19d832b3495857229f9a2875","src/transport/freebsd/device.rs":"f41c7cf29c48bf2b403cf460e6387864372a134d6daeefc5c3afc3f40d0d4575","src/transport/freebsd/mod.rs":"42dcb57fbeb00140003a8ad39acac9b547062b8f281a3fa5deb5f92a6169dde6","src/transport/freebsd/monitor.rs":"a6b34af4dd2e357a5775b1f3a723766107c11ef98dba859b1188ed08e0e450a2","src/transport/freebsd/transaction.rs":"ec28475a70dded260f9a7908c7f88dd3771f5d64b9a5dda835411d13b713c39a","src/transport/freebsd/uhid.rs":"a194416a8bc5d428c337f8d96a2248769ca190810852bbe5ee686ab595d8eb4c","src/transport/hid.rs":"033e0f1bf6428a1d4077e5abb53dbfa193ef72dd8a98b7666d7b5fb45a6570f0","src/transport/hidproto.rs":"9d490f161807b75f4d7d5096355006627c1f47c0d90fca53bade3692efc92a2d","src/transport/linux/device.rs":"e79bd06d98723a0d7e4f25b7cf2ac3e0260b10e52d2b0695909d2932288e10a4","src/transport/linux/hidraw.rs":"c7a0df9b4e51cb2736218ffffa02b2b2547b7c515d69f9bae2c9a8c8f1cb547b","src/transport/linux/hidwrapper.h":"72785db3a9b27ea72b6cf13a958fee032af54304522d002f56322473978a20f9","src/transport/linux/hidwrapper.rs":"d203e8804e7632b8d47a224c186d1f431800f04ddc43360d5c086f71e9b0f674","src/transport/linux/ioctl_aarch64le.rs":"2d8b265cd39a9f46816f83d5a5df0701c13eb842bc609325bad42ce50add3bf0","src/transport/linux/ioctl_armle.rs":"2d8b265cd39a9f46816f83d5a5df0701c13eb842bc609325bad42ce50add3bf0","src/transport/linux/ioctl_mips64le.rs":"fbda309934ad8bda689cd4fb5c0ca696fe26dedb493fe9d5a5322c3047d474fd","src/transport/linux/ioctl_mipsbe.rs":"fbda309934ad8bda689cd4fb5c0ca696fe26dedb493fe9d5a5322c3047d474fd","src/transport/linux/ioctl_mipsle.rs":"fbda309934ad8bda689cd4fb5c0ca696fe26dedb493fe9d5a5322c3047d474fd","src/transport/linux/ioctl_powerpc64be.rs":"fbda309934ad8bda689cd4fb5c0ca696fe26dedb493fe9d5a5322c3047d474fd","src/transport/linux/ioctl_powerpc64le.rs":"fbda309934ad8bda689cd4fb5c0ca696fe26dedb493fe9d5a5322c3047d474fd","src/transport/linux/ioctl_powerpcbe.rs":"fbda309934ad8bda689cd4fb5c0ca696fe26dedb493fe9d5a5322c3047d474fd","src/transport/linux/ioctl_riscv64.rs":"2d8b265cd39a9f46816f83d5a5df0701c13eb842bc609325bad42ce50add3bf0","src/transport/linux/ioctl_s390xbe.rs":"2d8b265cd39a9f46816f83d5a5df0701c13eb842bc609325bad42ce50add3bf0","src/transport/linux/ioctl_x86.rs":"2d8b265cd39a9f46816f83d5a5df0701c13eb842bc609325bad42ce50add3bf0","src/transport/linux/ioctl_x86_64.rs":"2d8b265cd39a9f46816f83d5a5df0701c13eb842bc609325bad42ce50add3bf0","src/transport/linux/mod.rs":"446e435126d2a58f167f648dd95cba28e8ac9c17f1f799e1eaeab80ea800fc57","src/transport/linux/monitor.rs":"5e3ec2618dd74027ae6ca1527991254e3271cce59106d4920ce0414094e22f64","src/transport/linux/transaction.rs":"ec28475a70dded260f9a7908c7f88dd3771f5d64b9a5dda835411d13b713c39a","src/transport/macos/device.rs":"f508d0585079ecf87a73d6135c52e8b5a887fbf16e241676d51a8099a8001a81","src/transport/macos/iokit.rs":"7dc4e7bbf8e42e2fcde0cee8e48d14d6234a5a910bd5d3c4e966d8ba6b73992f","src/transport/macos/mod.rs":"333e561554fc901d4f6092f6e4c85823e2b0c4ff31c9188d0e6d542b71a0a07c","src/transport/macos/monitor.rs":"e02288454bb4010e06b705d82646abddb3799f0cd655f574aa19f9d91485a4a2","src/transport/macos/transaction.rs":"9dcdebd13d5fd5a185b5ad777a80c825a6ba5e76b141c238aa115b451b9a72fa","src/transport/mock/device.rs":"582b2b55f13d95dd9f1127e3dde49d2137a5ca020f9c1fa1ffa5c4083d05c0e7","src/transport/mock/mod.rs":"9c4c87efd19adddc1a91c699a6c328063cfbac5531b76346a5ff92e986aded8f","src/transport/mock/transaction.rs":"be3ed8c389dfa04122364b82515edd76fad6f5d5f72d15cacd45a84fb8397292","src/transport/mod.rs":"e28d72b6f3fdaff21f940c4db213067cd94f5832f864ecaad1c9901d5aea9b79","src/transport/netbsd/device.rs":"a7dec83b5040faf1a8ddb37e9fc2b45b9b12814be4802b3b351eff081d1b80c3","src/transport/netbsd/fd.rs":"5464019025d03ea2a39c82f76b238bbbdb0ea63f5a5fc7c9d974e235139cd53b","src/transport/netbsd/mod.rs":"b1c52aa29537330cebe67427062d6c94871cab2a9b0c04b2305d686f07e88fd5","src/transport/netbsd/monitor.rs":"fb2917e4ba53cc9867987a539061f82d011f4c6e478df1157d965d32df2eb922","src/transport/netbsd/transaction.rs":"ec28475a70dded260f9a7908c7f88dd3771f5d64b9a5dda835411d13b713c39a","src/transport/netbsd/uhid.rs":"d15be35e2413240066a8f086bb8846b08a6a92bf6a1941c3eec1329dd3a4f9ce","src/transport/openbsd/device.rs":"47d8dfeb12c33e6cada2b2cd76476827059c797d8a16f2c4aea6e78d32ebab46","src/transport/openbsd/mod.rs":"514274d414042ff84b3667a41a736e78581e22fda87ccc97c2bc05617e381a30","src/transport/openbsd/monitor.rs":"2e0ba6ecc69b450be9cbfd21a7c65036ed2ce593b12363596d3eae0b5bfb79e8","src/transport/openbsd/transaction.rs":"ec28475a70dded260f9a7908c7f88dd3771f5d64b9a5dda835411d13b713c39a","src/transport/stub/device.rs":"aa21711d6690ed68bd878b28463172ba69c6324be7afabeccb1f07b4831cb020","src/transport/stub/mod.rs":"6a7fec504a52d403b0241b18cd8b95088a31807571f4c0a67e4055afc74f4453","src/transport/stub/transaction.rs":"c9a3ade9562468163f28fd51e7ff3e0bf5854b7edade9e987000d11c5d0e62d2","src/transport/windows/device.rs":"148b1572ed5fa8d476efbdb2a3a35608ec23012d6a805129f3c25c453bab4b7a","src/transport/windows/mod.rs":"218e7f2fe91ecb390c12bba5a5ffdad2c1f0b22861c937f4d386262e5b3dd617","src/transport/windows/monitor.rs":"95913d49e7d83482e420493d89b53ffceb6a49e646a87de934dff507b3092b4c","src/transport/windows/transaction.rs":"ec28475a70dded260f9a7908c7f88dd3771f5d64b9a5dda835411d13b713c39a","src/transport/windows/winapi.rs":"b2a4cc85f14e39cadfbf068ee001c9d776f028d3cf09cb926d4364c5b437c112","src/u2fprotocol.rs":"e61ac223aab79ae82383cd32a23213d18461e229c448373bf2483357a9eae69e","src/u2ftypes.rs":"8511c6f04f69670ddd403178a46060644a27128ca4077a9a3e00bc6671e3864b","src/util.rs":"cf37c4c3caf6dde4fc3cf6f5f297ed3c0f13bcb50fb0e8955899fc837483ef31","src/virtualdevices/mod.rs":"2c7df7691d5c150757304241351612aed4260d65b70ab0f483edbc1a5cfb5674","src/virtualdevices/software_u2f.rs":"83e63c0c4a597e71d87b5cd1f33a49646d00b3062edbdd05c51623b80fb60168","src/virtualdevices/webdriver/mod.rs":"4a36e6dfa9f45f941d863b4039bfbcfa8eaca660bd6ed78aeb1a2962db64be5a","src/virtualdevices/webdriver/testtoken.rs":"7146e02f1a5dad2c8827dd11c12ee408c0e42a0706ac65f139998feffd42570f","src/virtualdevices/webdriver/virtualmanager.rs":"7205a0397833628fc0847aa942a6a314dc1e23306858b546053e0de6a360ebe1","src/virtualdevices/webdriver/web_api.rs":"9032525af458b6fe9a3274c36b6ef8c791ecc4ec46d38ae36583fc9a4535b59d","testing/cross/powerpc64le-unknown-linux-gnu.Dockerfile":"d7463ff4376e3e0ca3fed879fab4aa975c4c0a3e7924c5b88aef9381a5d013de","testing/cross/x86_64-unknown-linux-gnu.Dockerfile":"11c79c04b07a171b0c9b63ef75fa75f33263ce76e3c1eda0879a3e723ebd0c24","testing/run_cross.sh":"cc2a7e0359f210eba2e7121f81eb8ab0125cea6e0d0f2698177b0fe2ad0c33d8","webdriver-tools/requirements.txt":"8236aa3dedad886f213c9b778fec80b037212d30e640b458984110211d546005","webdriver-tools/webdriver-driver.py":"82327c26ba271d1689acc87b612ab8436cb5475f0a3c0dba7baa06e7f6f5e19c"},"package":"aa0e182b77b6b19eaf9c7b69fddf3be970169ec6d34eca3f5d682ab948727e57"} -diff --git a/third_party/rust/authenticator/build.rs b/third_party/rust/authenticator/build.rs -index 58f6cfa393..acc4f09466 100644 ---- a/third_party/rust/authenticator/build.rs -+++ b/third_party/rust/authenticator/build.rs -@@ -47,6 +47,8 @@ fn main() { - "ioctl_s390xbe.rs" - } else if cfg!(all(target_arch = "riscv64", target_endian = "little")) { - "ioctl_riscv64.rs" -+ } else if cfg!(all(target_arch = "loongarch64", target_endian = "little")) { -+ "ioctl_loongarch64.rs" - } else { - panic!("architecture not supported"); - }; -diff --git a/third_party/rust/authenticator/src/transport/linux/hidwrapper.rs b/third_party/rust/authenticator/src/transport/linux/hidwrapper.rs -index 82aabc6301..bc8582c5b1 100644 ---- a/third_party/rust/authenticator/src/transport/linux/hidwrapper.rs -+++ b/third_party/rust/authenticator/src/transport/linux/hidwrapper.rs -@@ -49,3 +49,6 @@ include!("ioctl_s390xbe.rs"); - - #[cfg(all(target_arch = "riscv64", target_endian = "little"))] - include!("ioctl_riscv64.rs"); -+ -+#[cfg(all(target_arch = "loongarch64", target_endian = "little"))] -+include!("ioctl_loongarch64.rs"); -diff --git a/third_party/rust/authenticator/src/transport/linux/ioctl_loongarch64.rs b/third_party/rust/authenticator/src/transport/linux/ioctl_loongarch64.rs -new file mode 100644 -index 0000000000..a784e9bf46 ---- /dev/null -+++ b/third_party/rust/authenticator/src/transport/linux/ioctl_loongarch64.rs -@@ -0,0 +1,5 @@ -+/* automatically generated by rust-bindgen */ -+ -+pub type __u32 = ::std::os::raw::c_uint; -+pub const _HIDIOCGRDESCSIZE: __u32 = 2147764225; -+pub const _HIDIOCGRDESC: __u32 = 2416199682; --- -2.41.0 - diff --git a/add-loongarch64-support-for-cty.patch b/add-loongarch64-support-for-cty.patch deleted file mode 100644 index 04f03912de5242d3147858f9f2a18bd0354c1407..0000000000000000000000000000000000000000 --- a/add-loongarch64-support-for-cty.patch +++ /dev/null @@ -1,33 +0,0 @@ -From e2dbfb2757ec5c45b7d1f0082031f27378c147c2 Mon Sep 17 00:00:00 2001 -From: Wenlong Zhang -Date: Thu, 14 Dec 2023 07:50:41 +0000 -Subject: [PATCH 2/6] add loongarch64 support for cty - ---- - third_party/rust/cty/.cargo-checksum.json | 2 +- - third_party/rust/cty/src/lib.rs | 1 + - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/third_party/rust/cty/.cargo-checksum.json b/third_party/rust/cty/.cargo-checksum.json -index 902714f58a..3e65dbf70a 100644 ---- a/third_party/rust/cty/.cargo-checksum.json -+++ b/third_party/rust/cty/.cargo-checksum.json -@@ -1 +1 @@ --{"files":{"CHANGELOG.md":"077c738b5f2c05d66a12209edaabca887091db727d61164a7a414da23d8bf08f","Cargo.toml":"94a517ea6c7dad4634a9a2bd356f3a8035927e7ff8367bd5a975b4db4ccf8e6e","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"035e70219855119df4273b3c5b97543ae82e0dd60c520416e759107c602f651b","README.md":"19687c50697e6abc991e4c35e6d674db56bd5e5ae0d5b833440718f8f154a74d","ci/install.sh":"9b34273d9e79ec59f63d5e3e7aea27b0db66194667f9730a21158740fa1b99f1","ci/script.sh":"54962430ca4d3528e5c0d44ff590b1504be13147db5cbe8bb82f1358528ef5f3","src/lib.rs":"33a38ce6df718fb0191f34ff2cefdcbd3ad9d93f0c4073b78eaf937c07fb7614"},"package":"b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35"} -\ No newline at end of file -+{"files":{"CHANGELOG.md":"077c738b5f2c05d66a12209edaabca887091db727d61164a7a414da23d8bf08f","Cargo.toml":"94a517ea6c7dad4634a9a2bd356f3a8035927e7ff8367bd5a975b4db4ccf8e6e","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"035e70219855119df4273b3c5b97543ae82e0dd60c520416e759107c602f651b","README.md":"19687c50697e6abc991e4c35e6d674db56bd5e5ae0d5b833440718f8f154a74d","ci/install.sh":"9b34273d9e79ec59f63d5e3e7aea27b0db66194667f9730a21158740fa1b99f1","ci/script.sh":"54962430ca4d3528e5c0d44ff590b1504be13147db5cbe8bb82f1358528ef5f3","src/lib.rs":"3e9ec28a0d13cfb47546e044b8fc3a32007f7c76994704c4164c4430a7167e39"},"package":"b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35"} -diff --git a/third_party/rust/cty/src/lib.rs b/third_party/rust/cty/src/lib.rs -index 971c9cb3a9..80b8f3f291 100644 ---- a/third_party/rust/cty/src/lib.rs -+++ b/third_party/rust/cty/src/lib.rs -@@ -24,6 +24,7 @@ pub use pwd::*; - target_arch = "powerpc", - target_arch = "powerpc64", - target_arch = "s390x", -+ target_arch = "loongarch64", - target_arch = "riscv32", - target_arch = "riscv64"))] - mod ad { --- -2.41.0 - diff --git a/add-loongarch64-support-for-ipc.patch b/add-loongarch64-support-for-ipc.patch deleted file mode 100644 index 3347524c80be0452fe929e701bed9267a164f9f3..0000000000000000000000000000000000000000 --- a/add-loongarch64-support-for-ipc.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 4f9ab53eeabdc5966156601bda09f77fce057ba6 Mon Sep 17 00:00:00 2001 -From: Wenlong Zhang -Date: Thu, 14 Dec 2023 09:47:06 +0000 -Subject: [PATCH] add loongarch64 support for ipc - ---- - ipc/chromium/src/build/build_config.h | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/ipc/chromium/src/build/build_config.h b/ipc/chromium/src/build/build_config.h -index 511f36858c..f3a96feaf7 100644 ---- a/ipc/chromium/src/build/build_config.h -+++ b/ipc/chromium/src/build/build_config.h -@@ -129,6 +129,9 @@ - #elif defined(__riscv) && __riscv_xlen == 64 - # define ARCH_CPU_RISCV64 1 - # define ARCH_CPU_64_BITS 1 -+#elif defined(__loongarch64) -+# define ARCH_CPU_LOONGARCH64 1 -+# define ARCH_CPU_64_BITS 1 - #else - # error Please add support for your architecture in build/build_config.h - #endif --- -2.41.0 - diff --git a/add-loongarch64-support-for-libwebrtc.patch b/add-loongarch64-support-for-libwebrtc.patch deleted file mode 100644 index 668a7194879979f597b144b78153e95fc14bcad1..0000000000000000000000000000000000000000 --- a/add-loongarch64-support-for-libwebrtc.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 744dac8eb17bba89242b74181c28523974e7e88c Mon Sep 17 00:00:00 2001 -From: Wenlong Zhang -Date: Thu, 14 Dec 2023 10:47:13 +0000 -Subject: [PATCH] add loongarch64 support for libwebrtc - ---- - third_party/libwebrtc/build/build_config.h | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/third_party/libwebrtc/build/build_config.h b/third_party/libwebrtc/build/build_config.h -index c39ae9da50..4c44dbae12 100644 ---- a/third_party/libwebrtc/build/build_config.h -+++ b/third_party/libwebrtc/build/build_config.h -@@ -201,6 +201,10 @@ - #define ARCH_CPU_RISCV64 1 - #define ARCH_CPU_64_BITS 1 - #define ARCH_CPU_LITTLE_ENDIAN 1 -+#elif defined(__loongarch64) -+#define ARCH_CPU_LOONGARCH64 1 -+#define ARCH_CPU_64_BITS 1 -+#define ARCH_CPU_LITTLE_ENDIAN 1 - #elif defined(__sparc__) - #if defined(__LP64__) - #define ARCH_CPU_SPARC64 1 --- -2.41.0 - diff --git a/add-loongarch64-support-for-nix.patch b/add-loongarch64-support-for-nix.patch deleted file mode 100644 index 3ea97d064017ef3db0af7e1ef9e0caee55bab96f..0000000000000000000000000000000000000000 --- a/add-loongarch64-support-for-nix.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 17ce6bde2be0e3d4fcd3fad4c85dcd4e610930c9 Mon Sep 17 00:00:00 2001 -From: Wenlong Zhang -Date: Thu, 14 Dec 2023 07:29:18 +0000 -Subject: [PATCH] add loongarch64 support for nix - ---- - third_party/rust/nix/.cargo-checksum.json | 2 +- - third_party/rust/nix/src/sys/ioctl/linux.rs | 1 + - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/third_party/rust/nix/.cargo-checksum.json b/third_party/rust/nix/.cargo-checksum.json -index f4c932b889..b7b9c9f3c9 100644 ---- a/third_party/rust/nix/.cargo-checksum.json -+++ b/third_party/rust/nix/.cargo-checksum.json -@@ -1 +1 @@ --{"files":{"CHANGELOG.md":"8ee4e556e53d1b39400a48675d3ecff0bf27e419accab7ca3be76ab934289548","Cargo.toml":"2e6eff9170182f107188b8bc9802efd044ef47178afc7f138950ecff1c1ceb96","LICENSE":"66e3ee1fa7f909ad3c612d556f2a0cdabcd809ad6e66f3b0605015ac64841b70","README.md":"1ed9a0e26ae6e575b3262ae734dd02889455593b761ee62403ea5a64104f3c9c","src/dir.rs":"0280a2dc480bd913f24ed84fbe26569fa2e8eefa660e5ad7c21e05fc34c14d16","src/env.rs":"028bc5e20139ebba418a655a2978a53335dc7680bf1de43d2c8333dd72cfa5c4","src/errno.rs":"e55d075858e349d9afea9ce0480f7fb7ba4dccccf0694fd7b3280b918836203c","src/fcntl.rs":"ea8f43d8fec0b6c3b7d903333e4c1ce85611684a4afd561c55cfe4b61a979e94","src/features.rs":"5b4a0831e5f4b79a6f0e42ed052fd66c875da18959750be51e41fb59ac19feed","src/ifaddrs.rs":"377865eb48040d28c392a1aec0221320108e3392ea285d23405ae2cfa5c54b20","src/kmod.rs":"c818ced08d55ae36fdf82fa914ba856b688e37234d574d3faa37128211d512fb","src/lib.rs":"a62fac2ba7111157c5b64251f67f8a189f04bd587d5c80703454a596ea7ae5d9","src/macros.rs":"e23d7d8be22ef0bf9febaaf2739585453103607c0139bd3995a324e4a16d011e","src/mount/bsd.rs":"4cf35606a63d7ca41caac3b38f01e2b70c63e71978c0529f19fc79182629dbe0","src/mount/linux.rs":"6e5d61788dedf1ca4416c6c6a3a9c6c747f9352c26d863f4a1d4142e288584d6","src/mount/mod.rs":"ba9f60eb831224ab73bdd87e00e15d13b9ce9efb70b18bf8f3fe60406d522b3e","src/mqueue.rs":"ed0a189036b2437b5f7f7f1312fa545540b06ca72171b451d8bce42cc3627534","src/net/if_.rs":"b32a8a1f952de60d95e549779a5c673fd72aa665e86bfdfc8ec6badf3016b9b1","src/net/mod.rs":"577f70170e53d4a6de1abb70bf8f1031ec3e65c0e63ef5fcf05c907125e7ac17","src/poll.rs":"2fc1d144fb40db51811c6357b520ab7993529702d8f0d8060c903118ff4f7259","src/pty.rs":"27b4f76c23acf02542674017067fee74cdcac907338458700a1aa4d6f6a62e27","src/sched.rs":"403aa5ebed81910263d42a94717612b737550bf053227b7d90f1c8949188d919","src/sys/aio.rs":"ae091de8540c97da374a39e7d154c1b3ce50f41e6fc20a45c6b06eb838e74366","src/sys/epoll.rs":"28e22debf474d1b047e8044a00b354c25dab2fa125960f9f2f14cc34289fd5c9","src/sys/event.rs":"dbd8e84bccb813839295b0a336485783ef19548d2317931f0ceb5ee62f839a40","src/sys/eventfd.rs":"c8db8f5874726fdad289ad5e2603a7d71a1ae5a899dcde3a35d3edff8b498b7e","src/sys/inotify.rs":"5b4da774313afa9c28c3f92f9d07dce9bf4c8d044fd6a16f19480e79a19e808b","src/sys/ioctl/bsd.rs":"bbd02e30b0a78c1cb22777d9b00cfcbba9c68505cffc06118ac68474cf6fea39","src/sys/ioctl/linux.rs":"028181834d119b834bf399f2b8a6176cc57e75144693f28f32059d087d8c8018","src/sys/ioctl/mod.rs":"89b20579476b2e0254e0ecb1b41830cccd7027a22cbdb816a9d4ec3924842ac1","src/sys/memfd.rs":"f58d7fbe67c4b994832d72f5fbd59c136c8f1ae88ea8b0bc1c099db2d847ee6c","src/sys/mman.rs":"17df1bc34ba92bdd6bad1e11e4ef139998117f6c468c8f560421858f3cc899a5","src/sys/mod.rs":"baabf649f758ad4acce849ec1795dd4e4f9c6539e677bad5fa777300a4871dcb","src/sys/personality.rs":"aa89760c023bfec3fca5d8636f9eac9d337f5547933793ce6df7a0de97ae6ee1","src/sys/pthread.rs":"258cdf7ff0b61a4afa6d228109e4cb4fb88d859bb8dfe6c959d95130fb010906","src/sys/ptrace/bsd.rs":"4c590d8f023ff52f396f8b6f2150c08e5c9486d3088d9c173db33a70d616b800","src/sys/ptrace/linux.rs":"c82db3fb18aa97755f9ccb440a957cd46d664968a94045830c5d74d2d53bc19f","src/sys/ptrace/mod.rs":"e9e5d970097f5eafffba900959d4fdbf233bff9ed7f599fc9896bb44d86a57a4","src/sys/quota.rs":"02e698a25f0986fb43aa88689f3d3d8b9edc6ae48496ad02f7214fccaa493e00","src/sys/reboot.rs":"eacdf57694a6629fb05787e16450446102a62818274495f2ad4e445807d09221","src/sys/resource.rs":"d498d0c00fd30e35e1269a8902cb812014d813f63ec95364f8f59f1912ba5657","src/sys/select.rs":"65c39b129d3cc85b8ca026ff26dcf80c5639824f43715881c3c1bbb6bf0c8a60","src/sys/sendfile.rs":"7a62099f9771fecff49b9c11210341e3c1a4acf22f8dfb96d395e29421648676","src/sys/signal.rs":"c3e13a2edea54d190a4b051f62efc97953c00b5051a9fda0e39e3bc732a31939","src/sys/signalfd.rs":"583524434fd37143be3db37fa6f6cbd339f7946416f05b58a95e246947e5cc9d","src/sys/socket/addr.rs":"84df895052f59ec84774b189ffb285d2a37a9703af6c8310ae5040cca1a2583e","src/sys/socket/mod.rs":"6deb55438cad3606385303f036b0efd842dfd759fba93611911f5a4f2613c9dc","src/sys/socket/sockopt.rs":"ed1f920364bfe88bbe6eaeeefb27a63bfcdd7d67604aca2f03e22f2b502df55a","src/sys/stat.rs":"337dea8d55d6177dc85b3235b40b8a3e81af7f4a6e2806a0b2f730bec5424350","src/sys/statfs.rs":"17103659a85279bac046c69cb3b22bf2c11c2492cffb0edfa4c3b233d161a2f2","src/sys/statvfs.rs":"f81e3900ef90d62e7eceaf1b6ff8dcfd965466714c033eb4717687f692171f48","src/sys/sysinfo.rs":"b4519b1ca091c9dbe94d2a6fd6304944bf3df5626973d2c6884022559706f0d9","src/sys/termios.rs":"7923f9846a8122096b6b1cd240d3618b876ce500a751ac434954d172e2e85745","src/sys/time.rs":"9026033b60a5ccc95b70424aef043c8c748722e2ea8c7c86366ecd4585b651a0","src/sys/timer.rs":"8c10f0e7cfac857ad00460be30bc68b957909cc9296e70718d3b5d4a0babafde","src/sys/timerfd.rs":"ef7c48aefdcfac13316eeddbef5da04cf12e9f574b8d9f43402c02b6b8db86b3","src/sys/uio.rs":"e1d59ccbee9d46c65d3aa8c36aa3a3222539beea0d20163a8b707d08fca14e09","src/sys/utsname.rs":"0cdda0cc111caaa0e4ebe2d4588bdc825d878e5bcb7a9136073b15f87a20e11f","src/sys/wait.rs":"cc70d2d9b880ff6c48577a479c209af6127067bc013a90ee22538e4dfad7d2b4","src/time.rs":"d4e0872361a57810837f5bd790cbca3a2b9db1ac4694a3c52d1564ad3532d3be","src/ucontext.rs":"b8f2e04757a9c2bc38c3b1e259d3a013da8a730fe9bfbe5487637395681b43d3","src/unistd.rs":"e19be456124731c5b93aef92ed72a7c4c9092e28db0649814ba3fcc1f0d620fa","test/common/mod.rs":"1d7e28e3635754664cd056f3a1079232ff5c118df619e1d0551a9972eb0b3cd6","test/sys/mod.rs":"87b2891d83067ff21f72b8ff7fde3019dc45b6877282ac278b6da151de45c7a7","test/sys/test_aio.rs":"4dac9f716f852f1f438f78d6e64bf041e6fd316bf15dcb27afffaf0894bdefa6","test/sys/test_aio_drop.rs":"614070155fa16a979b7341d001639c5ce24a1d6f632c3abce45a5a6d49c4039b","test/sys/test_epoll.rs":"ffe95e36c79e37426ef8e8ca3b137b7f35ea0333ce666a20a4b7878db17680e9","test/sys/test_inotify.rs":"a141b9a995892547b51ceeb6761a70a6b86d37e8f38d13ea2c497b81b4b0f49f","test/sys/test_ioctl.rs":"00ccc5afb665e533a0a4b6d6a6be438bcaea19fce335390feef4e91d17b3036c","test/sys/test_mman.rs":"2b4161964c9204b74659028b0f89a88f4e3bcc9886137a3039737cd91d2698cb","test/sys/test_pthread.rs":"ace36a2f5587f1874854281b4fd84e4e4d892a1e3c5cc38ced57975739522ad6","test/sys/test_ptrace.rs":"0385eebc8b1b8c72f655b745769decd9143ad83018198375982da0896310456b","test/sys/test_select.rs":"54cea1c34ad28d5770a613c1c3cbc3b1064b22037ec2b9d3fcd422d3be9e60a7","test/sys/test_signal.rs":"acc9941227bd3e2afad323613c2b8c83902ed0486d3745fd72704f395924f1e4","test/sys/test_signalfd.rs":"0e1060143e2612c490bc3d0168d0bbb042ef55e3f1d91d2578b9e42e4310a14d","test/sys/test_socket.rs":"d2df1001f9a0b2dac0b88051a67c3868bb216e72e4da4eecd11c4448b9fa4b40","test/sys/test_sockopt.rs":"4465f22f718442f3f7b502e052dad02b93cebfa3b71fa55ff4f25fb02534acab","test/sys/test_stat.rs":"6630a28217fd708bb84cd4f7e7101836b74f2420f9888923fdab664ccc331c1d","test/sys/test_sysinfo.rs":"ffd49bc96375914a2c4a4a59730cae8072f85771e2c4a80d3403df38d967e272","test/sys/test_termios.rs":"e5bcef10c84bd7583d600d5601835bcb3cfc88781cb283ab0185bbef5faf4327","test/sys/test_timerfd.rs":"cfed3abf58118611d08f6985251a7739cff67108e11214222a1d2394a3a026ce","test/sys/test_uio.rs":"32656bd0a5699e4d019aa928edf104637937179782914a82d50d37226e84c421","test/sys/test_wait.rs":"6fd59fffeeb09ff620c359baefd062ba777598982b6cb001ccc07b6bc7605493","test/test.rs":"11f40b0718ddd1a150cb9e703d56d0b2a9462306505a2245ddf273a2011f48b5","test/test_clearenv.rs":"45ca548035b3c20ec87314715feaba2be973709a635d85b8cde46fd1d9f1ecd4","test/test_dir.rs":"ae3c11c58cb06da6557aa2a839c6653c54cd7724283fffe9df5a5d3feabdd89a","test/test_fcntl.rs":"71dcb87f7b04d78fc62937ba46cb7f0f1f2dbb330b63a996ea2e8ec9056b98a9","test/test_kmod/hello_mod/Makefile":"0219f7bce0603f97d997fb377ca071966c90333ecc665e78a54dfeb97a9c811b","test/test_kmod/hello_mod/hello.c":"bcac6b19c5bd807e1f3878c15e426acc85785a8ade9840c3bb4d068635c9188c","test/test_kmod/mod.rs":"b4ae25841c2f06f32de9f1acd8230eeccd7095721302ebe78ad454e4e4f9c783","test/test_mount.rs":"6dd242b6e23c9c39e1a75612bbea62573898818ab374c3c032c2cdb97033554d","test/test_mq.rs":"136071f24131aac0e65d5f29ac18e3806641dfae1164813f5570c0e3a6f70553","test/test_net.rs":"f2912327ebb2a3d37e6cff02a5ac3106cf889cc5c74404db4ef0034059ba26f1","test/test_nix_path.rs":"01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b","test/test_nmount.rs":"d6c112547bb80968170b5497cda4b6cbf69dabec6f51d494bd52298995ceff18","test/test_poll.rs":"3e0b8f0397ba080785c61a3bfc3d637bc87f324bc4e52b5f1bf3ca0d32dbc9fe","test/test_pty.rs":"b26238a0783746cb31880e11eebc1913149be999ce75fbc2d6677bdd1e2731b2","test/test_ptymaster_drop.rs":"ae63c815f5028ddc67d194e86559483018ab1816316bdb917f40cee9364fd8a5","test/test_resource.rs":"40aef790ab745cec31a4b333d2ca406b462aa9bdf4a6d3756371e498b8d51e9a","test/test_sched.rs":"c4579bd376fab8816e63b07fa9ace31dc08e63ebb7c855a2c450698090d1d1e8","test/test_sendfile.rs":"bb41b4f3621b518e397d3a5b5ad3c5dcef3fe506afe516eab7572fbab92b77e3","test/test_stat.rs":"c407ca47a5258750076d041afad2f6add4c3563be36628bde1c5b314f5d0765d","test/test_time.rs":"f7a21b1e279e60e84909d5dadda97ded66d3326b131fe317badf9af0a1b50335","test/test_timer.rs":"3ae20d364f075d2811f3ff94eda9886682cc21d8807656007d2464fe36d1e361","test/test_unistd.rs":"20a00be4fbe26302ea5fe50ce25b99265dc763db138663d6aa1d7ac729a1d292"},"package":"bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a"} -\ No newline at end of file -+{"files":{"CHANGELOG.md":"8ee4e556e53d1b39400a48675d3ecff0bf27e419accab7ca3be76ab934289548","Cargo.toml":"2e6eff9170182f107188b8bc9802efd044ef47178afc7f138950ecff1c1ceb96","LICENSE":"66e3ee1fa7f909ad3c612d556f2a0cdabcd809ad6e66f3b0605015ac64841b70","README.md":"1ed9a0e26ae6e575b3262ae734dd02889455593b761ee62403ea5a64104f3c9c","src/dir.rs":"0280a2dc480bd913f24ed84fbe26569fa2e8eefa660e5ad7c21e05fc34c14d16","src/env.rs":"028bc5e20139ebba418a655a2978a53335dc7680bf1de43d2c8333dd72cfa5c4","src/errno.rs":"e55d075858e349d9afea9ce0480f7fb7ba4dccccf0694fd7b3280b918836203c","src/fcntl.rs":"ea8f43d8fec0b6c3b7d903333e4c1ce85611684a4afd561c55cfe4b61a979e94","src/features.rs":"5b4a0831e5f4b79a6f0e42ed052fd66c875da18959750be51e41fb59ac19feed","src/ifaddrs.rs":"377865eb48040d28c392a1aec0221320108e3392ea285d23405ae2cfa5c54b20","src/kmod.rs":"c818ced08d55ae36fdf82fa914ba856b688e37234d574d3faa37128211d512fb","src/lib.rs":"a62fac2ba7111157c5b64251f67f8a189f04bd587d5c80703454a596ea7ae5d9","src/macros.rs":"e23d7d8be22ef0bf9febaaf2739585453103607c0139bd3995a324e4a16d011e","src/mount/bsd.rs":"4cf35606a63d7ca41caac3b38f01e2b70c63e71978c0529f19fc79182629dbe0","src/mount/linux.rs":"6e5d61788dedf1ca4416c6c6a3a9c6c747f9352c26d863f4a1d4142e288584d6","src/mount/mod.rs":"ba9f60eb831224ab73bdd87e00e15d13b9ce9efb70b18bf8f3fe60406d522b3e","src/mqueue.rs":"ed0a189036b2437b5f7f7f1312fa545540b06ca72171b451d8bce42cc3627534","src/net/if_.rs":"b32a8a1f952de60d95e549779a5c673fd72aa665e86bfdfc8ec6badf3016b9b1","src/net/mod.rs":"577f70170e53d4a6de1abb70bf8f1031ec3e65c0e63ef5fcf05c907125e7ac17","src/poll.rs":"2fc1d144fb40db51811c6357b520ab7993529702d8f0d8060c903118ff4f7259","src/pty.rs":"27b4f76c23acf02542674017067fee74cdcac907338458700a1aa4d6f6a62e27","src/sched.rs":"403aa5ebed81910263d42a94717612b737550bf053227b7d90f1c8949188d919","src/sys/aio.rs":"ae091de8540c97da374a39e7d154c1b3ce50f41e6fc20a45c6b06eb838e74366","src/sys/epoll.rs":"28e22debf474d1b047e8044a00b354c25dab2fa125960f9f2f14cc34289fd5c9","src/sys/event.rs":"dbd8e84bccb813839295b0a336485783ef19548d2317931f0ceb5ee62f839a40","src/sys/eventfd.rs":"c8db8f5874726fdad289ad5e2603a7d71a1ae5a899dcde3a35d3edff8b498b7e","src/sys/inotify.rs":"5b4da774313afa9c28c3f92f9d07dce9bf4c8d044fd6a16f19480e79a19e808b","src/sys/ioctl/bsd.rs":"bbd02e30b0a78c1cb22777d9b00cfcbba9c68505cffc06118ac68474cf6fea39","src/sys/ioctl/linux.rs":"54bad026ee637b73b95dad8135b6db61cae855670fd9323e7bf21acaff0827f4","src/sys/ioctl/mod.rs":"89b20579476b2e0254e0ecb1b41830cccd7027a22cbdb816a9d4ec3924842ac1","src/sys/memfd.rs":"f58d7fbe67c4b994832d72f5fbd59c136c8f1ae88ea8b0bc1c099db2d847ee6c","src/sys/mman.rs":"17df1bc34ba92bdd6bad1e11e4ef139998117f6c468c8f560421858f3cc899a5","src/sys/mod.rs":"baabf649f758ad4acce849ec1795dd4e4f9c6539e677bad5fa777300a4871dcb","src/sys/personality.rs":"aa89760c023bfec3fca5d8636f9eac9d337f5547933793ce6df7a0de97ae6ee1","src/sys/pthread.rs":"258cdf7ff0b61a4afa6d228109e4cb4fb88d859bb8dfe6c959d95130fb010906","src/sys/ptrace/bsd.rs":"4c590d8f023ff52f396f8b6f2150c08e5c9486d3088d9c173db33a70d616b800","src/sys/ptrace/linux.rs":"c82db3fb18aa97755f9ccb440a957cd46d664968a94045830c5d74d2d53bc19f","src/sys/ptrace/mod.rs":"e9e5d970097f5eafffba900959d4fdbf233bff9ed7f599fc9896bb44d86a57a4","src/sys/quota.rs":"02e698a25f0986fb43aa88689f3d3d8b9edc6ae48496ad02f7214fccaa493e00","src/sys/reboot.rs":"eacdf57694a6629fb05787e16450446102a62818274495f2ad4e445807d09221","src/sys/resource.rs":"d498d0c00fd30e35e1269a8902cb812014d813f63ec95364f8f59f1912ba5657","src/sys/select.rs":"65c39b129d3cc85b8ca026ff26dcf80c5639824f43715881c3c1bbb6bf0c8a60","src/sys/sendfile.rs":"7a62099f9771fecff49b9c11210341e3c1a4acf22f8dfb96d395e29421648676","src/sys/signal.rs":"c3e13a2edea54d190a4b051f62efc97953c00b5051a9fda0e39e3bc732a31939","src/sys/signalfd.rs":"583524434fd37143be3db37fa6f6cbd339f7946416f05b58a95e246947e5cc9d","src/sys/socket/addr.rs":"84df895052f59ec84774b189ffb285d2a37a9703af6c8310ae5040cca1a2583e","src/sys/socket/mod.rs":"6deb55438cad3606385303f036b0efd842dfd759fba93611911f5a4f2613c9dc","src/sys/socket/sockopt.rs":"ed1f920364bfe88bbe6eaeeefb27a63bfcdd7d67604aca2f03e22f2b502df55a","src/sys/stat.rs":"337dea8d55d6177dc85b3235b40b8a3e81af7f4a6e2806a0b2f730bec5424350","src/sys/statfs.rs":"17103659a85279bac046c69cb3b22bf2c11c2492cffb0edfa4c3b233d161a2f2","src/sys/statvfs.rs":"f81e3900ef90d62e7eceaf1b6ff8dcfd965466714c033eb4717687f692171f48","src/sys/sysinfo.rs":"b4519b1ca091c9dbe94d2a6fd6304944bf3df5626973d2c6884022559706f0d9","src/sys/termios.rs":"7923f9846a8122096b6b1cd240d3618b876ce500a751ac434954d172e2e85745","src/sys/time.rs":"9026033b60a5ccc95b70424aef043c8c748722e2ea8c7c86366ecd4585b651a0","src/sys/timer.rs":"8c10f0e7cfac857ad00460be30bc68b957909cc9296e70718d3b5d4a0babafde","src/sys/timerfd.rs":"ef7c48aefdcfac13316eeddbef5da04cf12e9f574b8d9f43402c02b6b8db86b3","src/sys/uio.rs":"e1d59ccbee9d46c65d3aa8c36aa3a3222539beea0d20163a8b707d08fca14e09","src/sys/utsname.rs":"0cdda0cc111caaa0e4ebe2d4588bdc825d878e5bcb7a9136073b15f87a20e11f","src/sys/wait.rs":"cc70d2d9b880ff6c48577a479c209af6127067bc013a90ee22538e4dfad7d2b4","src/time.rs":"d4e0872361a57810837f5bd790cbca3a2b9db1ac4694a3c52d1564ad3532d3be","src/ucontext.rs":"b8f2e04757a9c2bc38c3b1e259d3a013da8a730fe9bfbe5487637395681b43d3","src/unistd.rs":"e19be456124731c5b93aef92ed72a7c4c9092e28db0649814ba3fcc1f0d620fa","test/common/mod.rs":"1d7e28e3635754664cd056f3a1079232ff5c118df619e1d0551a9972eb0b3cd6","test/sys/mod.rs":"87b2891d83067ff21f72b8ff7fde3019dc45b6877282ac278b6da151de45c7a7","test/sys/test_aio.rs":"4dac9f716f852f1f438f78d6e64bf041e6fd316bf15dcb27afffaf0894bdefa6","test/sys/test_aio_drop.rs":"614070155fa16a979b7341d001639c5ce24a1d6f632c3abce45a5a6d49c4039b","test/sys/test_epoll.rs":"ffe95e36c79e37426ef8e8ca3b137b7f35ea0333ce666a20a4b7878db17680e9","test/sys/test_inotify.rs":"a141b9a995892547b51ceeb6761a70a6b86d37e8f38d13ea2c497b81b4b0f49f","test/sys/test_ioctl.rs":"00ccc5afb665e533a0a4b6d6a6be438bcaea19fce335390feef4e91d17b3036c","test/sys/test_mman.rs":"2b4161964c9204b74659028b0f89a88f4e3bcc9886137a3039737cd91d2698cb","test/sys/test_pthread.rs":"ace36a2f5587f1874854281b4fd84e4e4d892a1e3c5cc38ced57975739522ad6","test/sys/test_ptrace.rs":"0385eebc8b1b8c72f655b745769decd9143ad83018198375982da0896310456b","test/sys/test_select.rs":"54cea1c34ad28d5770a613c1c3cbc3b1064b22037ec2b9d3fcd422d3be9e60a7","test/sys/test_signal.rs":"acc9941227bd3e2afad323613c2b8c83902ed0486d3745fd72704f395924f1e4","test/sys/test_signalfd.rs":"0e1060143e2612c490bc3d0168d0bbb042ef55e3f1d91d2578b9e42e4310a14d","test/sys/test_socket.rs":"d2df1001f9a0b2dac0b88051a67c3868bb216e72e4da4eecd11c4448b9fa4b40","test/sys/test_sockopt.rs":"4465f22f718442f3f7b502e052dad02b93cebfa3b71fa55ff4f25fb02534acab","test/sys/test_stat.rs":"6630a28217fd708bb84cd4f7e7101836b74f2420f9888923fdab664ccc331c1d","test/sys/test_sysinfo.rs":"ffd49bc96375914a2c4a4a59730cae8072f85771e2c4a80d3403df38d967e272","test/sys/test_termios.rs":"e5bcef10c84bd7583d600d5601835bcb3cfc88781cb283ab0185bbef5faf4327","test/sys/test_timerfd.rs":"cfed3abf58118611d08f6985251a7739cff67108e11214222a1d2394a3a026ce","test/sys/test_uio.rs":"32656bd0a5699e4d019aa928edf104637937179782914a82d50d37226e84c421","test/sys/test_wait.rs":"6fd59fffeeb09ff620c359baefd062ba777598982b6cb001ccc07b6bc7605493","test/test.rs":"11f40b0718ddd1a150cb9e703d56d0b2a9462306505a2245ddf273a2011f48b5","test/test_clearenv.rs":"45ca548035b3c20ec87314715feaba2be973709a635d85b8cde46fd1d9f1ecd4","test/test_dir.rs":"ae3c11c58cb06da6557aa2a839c6653c54cd7724283fffe9df5a5d3feabdd89a","test/test_fcntl.rs":"71dcb87f7b04d78fc62937ba46cb7f0f1f2dbb330b63a996ea2e8ec9056b98a9","test/test_kmod/hello_mod/Makefile":"0219f7bce0603f97d997fb377ca071966c90333ecc665e78a54dfeb97a9c811b","test/test_kmod/hello_mod/hello.c":"bcac6b19c5bd807e1f3878c15e426acc85785a8ade9840c3bb4d068635c9188c","test/test_kmod/mod.rs":"b4ae25841c2f06f32de9f1acd8230eeccd7095721302ebe78ad454e4e4f9c783","test/test_mount.rs":"6dd242b6e23c9c39e1a75612bbea62573898818ab374c3c032c2cdb97033554d","test/test_mq.rs":"136071f24131aac0e65d5f29ac18e3806641dfae1164813f5570c0e3a6f70553","test/test_net.rs":"f2912327ebb2a3d37e6cff02a5ac3106cf889cc5c74404db4ef0034059ba26f1","test/test_nix_path.rs":"01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b","test/test_nmount.rs":"d6c112547bb80968170b5497cda4b6cbf69dabec6f51d494bd52298995ceff18","test/test_poll.rs":"3e0b8f0397ba080785c61a3bfc3d637bc87f324bc4e52b5f1bf3ca0d32dbc9fe","test/test_pty.rs":"b26238a0783746cb31880e11eebc1913149be999ce75fbc2d6677bdd1e2731b2","test/test_ptymaster_drop.rs":"ae63c815f5028ddc67d194e86559483018ab1816316bdb917f40cee9364fd8a5","test/test_resource.rs":"40aef790ab745cec31a4b333d2ca406b462aa9bdf4a6d3756371e498b8d51e9a","test/test_sched.rs":"c4579bd376fab8816e63b07fa9ace31dc08e63ebb7c855a2c450698090d1d1e8","test/test_sendfile.rs":"bb41b4f3621b518e397d3a5b5ad3c5dcef3fe506afe516eab7572fbab92b77e3","test/test_stat.rs":"c407ca47a5258750076d041afad2f6add4c3563be36628bde1c5b314f5d0765d","test/test_time.rs":"f7a21b1e279e60e84909d5dadda97ded66d3326b131fe317badf9af0a1b50335","test/test_timer.rs":"3ae20d364f075d2811f3ff94eda9886682cc21d8807656007d2464fe36d1e361","test/test_unistd.rs":"20a00be4fbe26302ea5fe50ce25b99265dc763db138663d6aa1d7ac729a1d292"},"package":"bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a"} -diff --git a/third_party/rust/nix/src/sys/ioctl/linux.rs b/third_party/rust/nix/src/sys/ioctl/linux.rs -index 0c0a209053..214d9e8c60 100644 ---- a/third_party/rust/nix/src/sys/ioctl/linux.rs -+++ b/third_party/rust/nix/src/sys/ioctl/linux.rs -@@ -41,6 +41,7 @@ mod consts { - target_arch = "s390x", - target_arch = "x86_64", - target_arch = "aarch64", -+ target_arch = "loongarch64", - target_arch = "riscv32", - target_arch = "riscv64" - ))] --- -2.41.0 - diff --git a/backport-Bug-1782159-to-support-loongarch64.patch b/backport-Bug-1782159-to-support-loongarch64.patch deleted file mode 100644 index 5121d297c89a5d1c11d3b003cea9ca1a5ed7f1f0..0000000000000000000000000000000000000000 --- a/backport-Bug-1782159-to-support-loongarch64.patch +++ /dev/null @@ -1,468 +0,0 @@ -From 01ea3f7cf670d9e1f62a8f97474c84831d2e0e18 Mon Sep 17 00:00:00 2001 -From: wujiahuan -Date: Thu, 14 Dec 2023 12:40:12 +0000 -Subject: [PATCH] backport Bug 1782159 to support loongarch64 -https://hg.mozilla.org/mozilla-central/rev/f01044248c8595683ca1f625080c9aee51655966 - ---- - xpcom/reflect/xptcall/md/unix/moz.build | 8 + - .../md/unix/xptcinvoke_asm_loongarch64.S | 91 ++++++++++ - .../md/unix/xptcinvoke_loongarch64.cpp | 100 +++++++++++ - .../md/unix/xptcstubs_asm_loongarch64.S | 53 ++++++ - .../xptcall/md/unix/xptcstubs_loongarch64.cpp | 160 ++++++++++++++++++ - 5 files changed, 412 insertions(+) - create mode 100644 xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_loongarch64.S - create mode 100644 xpcom/reflect/xptcall/md/unix/xptcinvoke_loongarch64.cpp - create mode 100644 xpcom/reflect/xptcall/md/unix/xptcstubs_asm_loongarch64.S - create mode 100644 xpcom/reflect/xptcall/md/unix/xptcstubs_loongarch64.cpp - -diff --git a/xpcom/reflect/xptcall/md/unix/moz.build b/xpcom/reflect/xptcall/md/unix/moz.build -index 1779c148cb..e74c936c38 100644 ---- a/xpcom/reflect/xptcall/md/unix/moz.build -+++ b/xpcom/reflect/xptcall/md/unix/moz.build -@@ -271,6 +271,14 @@ if CONFIG["OS_ARCH"] == "Linux" and CONFIG["CPU_ARCH"] == "riscv64": - "xptcstubs_riscv64.cpp", - ] - -+if CONFIG["OS_ARCH"] == "Linux" and CONFIG["CPU_ARCH"] == "loongarch64": -+ SOURCES += [ -+ "xptcinvoke_asm_loongarch64.S", -+ "xptcinvoke_loongarch64.cpp", -+ "xptcstubs_asm_loongarch64.S", -+ "xptcstubs_loongarch64.cpp", -+ ] -+ - FINAL_LIBRARY = "xul" - - LOCAL_INCLUDES += [ -diff --git a/xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_loongarch64.S b/xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_loongarch64.S -new file mode 100644 -index 0000000000..8769060aed ---- /dev/null -+++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_loongarch64.S -@@ -0,0 +1,91 @@ -+/* This Source Code Form subject to the terms of 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/. -+ */ -+ -+ .set NGPREGS, 8 -+ .set NFPREGS, 8 -+ -+ .text -+ .globl _NS_InvokeByIndex -+ .type _NS_InvokeByIndex, @function -+/* -+ * _NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex, -+ * uint32_t paramCount, nsXPTCVariant* params) -+ */ -+_NS_InvokeByIndex: -+ .cfi_startproc -+ addi.d $sp, $sp, -32 -+ .cfi_def_cfa_offset 32 -+ st.d $s0, $sp, 16 -+ .cfi_offset 23, -16 -+ st.d $s1, $sp, 8 -+ .cfi_offset 24, -24 -+ st.d $s2, $sp, 0 -+ .cfi_offset 25, -32 -+ st.d $ra, $sp, 24 -+ .cfi_offset 1, -8 -+ -+ move $s2, $a0 -+ move $s1, $a1 -+ move $s0, $sp -+ .cfi_def_cfa_register 23 -+ -+ /* 16-bytes alignment */ -+ addi.d $a0, $a2, 1 -+ li.d $t4, 0xfffffffffffffffe -+ and $a0, $a0, $t4 -+ slli.d $a0, $a0, 3 -+ sub.d $sp, $sp, $a0 -+ move $a4, $sp -+ -+ addi.d $sp, $sp, -8*(NFPREGS+NGPREGS) -+ move $a0, $sp -+ addi.d $a1, $sp, 8*NGPREGS -+ -+ bl invoke_copy_to_stack -+ -+ /* 1st argument is this */ -+ move $a0, $s2 -+ -+ ld.d $a1, $sp, 8 -+ ld.d $a2, $sp, 16 -+ ld.d $a3, $sp, 24 -+ ld.d $a4, $sp, 32 -+ ld.d $a5, $sp, 40 -+ ld.d $a6, $sp, 48 -+ ld.d $a7, $sp, 56 -+ -+ fld.d $fa0, $sp, 64 -+ fld.d $fa1, $sp, 72 -+ fld.d $fa2, $sp, 80 -+ fld.d $fa3, $sp, 88 -+ fld.d $fa4, $sp, 96 -+ fld.d $fa5, $sp, 104 -+ fld.d $fa6, $sp, 112 -+ fld.d $fa7, $sp, 120 -+ -+ addi.d $sp, $sp, 8*(NGPREGS+NFPREGS) -+ -+ ld.d $s2, $s2, 0 -+ slli.w $s1, $s1, 3 -+ add.d $s2, $s2, $s1 -+ ld.d $t3, $s2, 0 -+ jirl $ra, $t3, 0 -+ -+ move $sp, $s0 -+ .cfi_def_cfa_register 3 -+ ld.d $s0, $sp, 16 -+ .cfi_restore 23 -+ ld.d $s1, $sp, 8 -+ .cfi_restore 24 -+ ld.d $s2, $sp, 0 -+ .cfi_restore 25 -+ ld.d $ra, $sp, 24 -+ .cfi_restore 1 -+ addi.d $sp, $sp, 32 -+ .cfi_def_cfa_offset -32 -+ jirl $zero, $ra, 0 -+ .cfi_endproc -+ .size _NS_InvokeByIndex, .-_NS_InvokeByIndex -+ .section .note.GNU-stack, "", @progbits -diff --git a/xpcom/reflect/xptcall/md/unix/xptcinvoke_loongarch64.cpp b/xpcom/reflect/xptcall/md/unix/xptcinvoke_loongarch64.cpp -new file mode 100644 -index 0000000000..61bb7b2efd ---- /dev/null -+++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_loongarch64.cpp -@@ -0,0 +1,100 @@ -+/* 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/. */ -+ -+// Platform specific code to invoke XPCOM methods on native objects -+ -+#include "xptcprivate.h" -+ -+extern "C" void invoke_copy_to_stack(uint64_t* gpregs, double* fpregs, -+ uint32_t paramCount, nsXPTCVariant* s, -+ uint64_t* d) { -+ static const uint32_t GPR_COUNT = 8; -+ static const uint32_t FPR_COUNT = 8; -+ -+ uint32_t nr_gpr = 1; // skip one GPR register for "this" -+ uint32_t nr_fpr = 0; -+ uint64_t value = 0; -+ -+ for (uint32_t i = 0; i < paramCount; i++, s++) { -+ if (s->IsIndirect()) { -+ value = (uint64_t)&s->val; -+ } else { -+ switch (s->type) { -+ case nsXPTType::T_FLOAT: -+ break; -+ case nsXPTType::T_DOUBLE: -+ break; -+ case nsXPTType::T_I8: -+ value = s->val.i8; -+ break; -+ case nsXPTType::T_I16: -+ value = s->val.i16; -+ break; -+ case nsXPTType::T_I32: -+ value = s->val.i32; -+ break; -+ case nsXPTType::T_I64: -+ value = s->val.i64; -+ break; -+ case nsXPTType::T_U8: -+ value = s->val.u8; -+ break; -+ case nsXPTType::T_U16: -+ value = s->val.u16; -+ break; -+ case nsXPTType::T_U32: -+ value = s->val.u32; -+ break; -+ case nsXPTType::T_U64: -+ value = s->val.u64; -+ break; -+ case nsXPTType::T_BOOL: -+ value = s->val.b; -+ break; -+ case nsXPTType::T_CHAR: -+ value = s->val.c; -+ break; -+ case nsXPTType::T_WCHAR: -+ value = s->val.wc; -+ break; -+ default: -+ value = (uint64_t)s->val.p; -+ break; -+ } -+ } -+ -+ if (!s->IsIndirect() && s->type == nsXPTType::T_DOUBLE) { -+ if (nr_fpr < FPR_COUNT) { -+ fpregs[nr_fpr++] = s->val.d; -+ } else if (nr_gpr < GPR_COUNT) { -+ memcpy(&gpregs[nr_gpr++], &(s->val.d), sizeof(s->val.d)); -+ } else { -+ memcpy(d++, &(s->val.d), sizeof(s->val.d)); -+ } -+ } else if (!s->IsIndirect() && s->type == nsXPTType::T_FLOAT) { -+ if (nr_fpr < FPR_COUNT) { -+ memcpy(&fpregs[nr_fpr++], &(s->val.f), sizeof(s->val.f)); -+ } else if (nr_gpr < GPR_COUNT) { -+ memcpy(&gpregs[nr_gpr++], &(s->val.f), sizeof(s->val.f)); -+ } else { -+ memcpy(d++, &(s->val.f), sizeof(s->val.f)); -+ } -+ } else { -+ if (nr_gpr < GPR_COUNT) { -+ gpregs[nr_gpr++] = value; -+ } else { -+ *d++ = value; -+ } -+ } -+ } -+} -+ -+extern "C" nsresult _NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex, -+ uint32_t paramCount, -+ nsXPTCVariant* params); -+EXPORT_XPCOM_API(nsresult) -+NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex, uint32_t paramCount, -+ nsXPTCVariant* params) { -+ return _NS_InvokeByIndex(that, methodIndex, paramCount, params); -+} -diff --git a/xpcom/reflect/xptcall/md/unix/xptcstubs_asm_loongarch64.S b/xpcom/reflect/xptcall/md/unix/xptcstubs_asm_loongarch64.S -new file mode 100644 -index 0000000000..5041de962c ---- /dev/null -+++ b/xpcom/reflect/xptcall/md/unix/xptcstubs_asm_loongarch64.S -@@ -0,0 +1,53 @@ -+# 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/. -+ -+ .set NGPRGES, 8 -+ .set NFPREGS, 8 -+ -+ .text -+ .globl SharedStub -+ .hidden SharedStub -+ .type SharedStub,@function -+ -+SharedStub: -+ .cfi_startproc -+ move $t0, $sp -+ addi.d $sp, $sp, -8*(NGPRGES+NFPREGS)-16 -+ .cfi_def_cfa_offset 8*(NGPRGES+NFPREGS)+16 -+ st.d $a0, $sp, 0 -+ st.d $a1, $sp, 8 -+ st.d $a2, $sp, 16 -+ st.d $a3, $sp, 24 -+ st.d $a4, $sp, 32 -+ st.d $a5, $sp, 40 -+ st.d $a6, $sp, 48 -+ st.d $a7, $sp, 56 -+ fst.d $fa0, $sp, 64 -+ fst.d $fa1, $sp, 72 -+ fst.d $fa2, $sp, 80 -+ fst.d $fa3, $sp, 88 -+ fst.d $fa4, $sp, 96 -+ fst.d $fa5, $sp, 104 -+ fst.d $fa6, $sp, 112 -+ fst.d $fa7, $sp, 120 -+ st.d $ra, $sp, 136 -+ .cfi_offset 1, 136 -+ -+ /* methodIndex is passed from stub */ -+ move $a1, $t6 -+ move $a2, $t0 -+ move $a3, $sp -+ addi.d $a4, $sp, 8*NGPRGES -+ -+ bl PrepareAndDispatch -+ -+ ld.d $ra, $sp, 136 -+ .cfi_restore 1 -+ addi.d $sp, $sp, 8*(NGPRGES+NFPREGS)+16 -+ .cfi_def_cfa_offset -8*(NGPRGES+NFPREGS)-16 -+ jirl $zero, $ra, 0 -+ .cfi_endproc -+ -+ .size SharedStub, .-SharedStub -+ .section .note.GNU-stack, "", @progbits -diff --git a/xpcom/reflect/xptcall/md/unix/xptcstubs_loongarch64.cpp b/xpcom/reflect/xptcall/md/unix/xptcstubs_loongarch64.cpp -new file mode 100644 -index 0000000000..1ea4289045 ---- /dev/null -+++ b/xpcom/reflect/xptcall/md/unix/xptcstubs_loongarch64.cpp -@@ -0,0 +1,160 @@ -+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -+ -+/* 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 "xptcprivate.h" -+ -+extern "C" nsresult ATTRIBUTE_USED PrepareAndDispatch(nsXPTCStubBase* self, -+ uint32_t methodIndex, -+ uint64_t* args, -+ uint64_t* gpregs, -+ double* fpregs) { -+ static const uint32_t GPR_COUNT = 8; -+ static const uint32_t FPR_COUNT = 8; -+ nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT]; -+ const nsXPTMethodInfo* info; -+ -+ self->mEntry->GetMethodInfo(uint16_t(methodIndex), &info); -+ -+ uint32_t paramCount = info->GetParamCount(); -+ const uint8_t indexOfJSContext = info->IndexOfJSContext(); -+ -+ uint64_t* ap = args; -+ uint32_t nr_gpr = 1; // skip the arg which is 'self' -+ uint32_t nr_fpr = 0; -+ uint64_t value; -+ -+ for (uint32_t i = 0; i < paramCount; i++) { -+ const nsXPTParamInfo& param = info->GetParam(i); -+ const nsXPTType& type = param.GetType(); -+ nsXPTCMiniVariant* dp = ¶mBuffer[i]; -+ -+ if (i == indexOfJSContext) { -+ if (nr_gpr < GPR_COUNT) -+ nr_gpr++; -+ else -+ ap++; -+ } -+ -+ if (!param.IsOut() && type == nsXPTType::T_DOUBLE) { -+ if (nr_fpr < FPR_COUNT) { -+ dp->val.d = fpregs[nr_fpr++]; -+ } else if (nr_gpr < GPR_COUNT) { -+ memcpy(&dp->val.d, &gpregs[nr_gpr++], sizeof(dp->val.d)); -+ } else { -+ memcpy(&dp->val.d, ap++, sizeof(dp->val.d)); -+ } -+ continue; -+ } -+ -+ if (!param.IsOut() && type == nsXPTType::T_FLOAT) { -+ if (nr_fpr < FPR_COUNT) { -+ memcpy(&dp->val.f, &fpregs[nr_fpr++], sizeof(dp->val.f)); -+ } else if (nr_gpr < GPR_COUNT) { -+ memcpy(&dp->val.f, &gpregs[nr_gpr++], sizeof(dp->val.f)); -+ } else { -+ memcpy(&dp->val.f, ap++, sizeof(dp->val.f)); -+ } -+ continue; -+ } -+ -+ if (nr_gpr < GPR_COUNT) { -+ value = gpregs[nr_gpr++]; -+ } else { -+ value = *ap++; -+ } -+ -+ if (param.IsOut() || !type.IsArithmetic()) { -+ dp->val.p = (void*)value; -+ continue; -+ } -+ -+ switch (type) { -+ case nsXPTType::T_I8: -+ dp->val.i8 = (int8_t)value; -+ break; -+ case nsXPTType::T_I16: -+ dp->val.i16 = (int16_t)value; -+ break; -+ case nsXPTType::T_I32: -+ dp->val.i32 = (int32_t)value; -+ break; -+ case nsXPTType::T_I64: -+ dp->val.i64 = (int64_t)value; -+ break; -+ case nsXPTType::T_U8: -+ dp->val.u8 = (uint8_t)value; -+ break; -+ case nsXPTType::T_U16: -+ dp->val.u16 = (uint16_t)value; -+ break; -+ case nsXPTType::T_U32: -+ dp->val.u32 = (uint32_t)value; -+ break; -+ case nsXPTType::T_U64: -+ dp->val.u64 = (uint64_t)value; -+ break; -+ case nsXPTType::T_BOOL: -+ dp->val.b = (bool)(uint8_t)value; -+ break; -+ case nsXPTType::T_CHAR: -+ dp->val.c = (char)value; -+ break; -+ case nsXPTType::T_WCHAR: -+ dp->val.wc = (wchar_t)value; -+ break; -+ default: -+ NS_ERROR("bad type"); -+ break; -+ } -+ } -+ -+ nsresult result = self->mOuter->CallMethod((uint16_t)methodIndex, info, -+ paramBuffer); -+ return result; -+} -+ -+// Load $t6 with the constant 'n' and branch to SharedStub(). -+// clang-format off -+#define STUB_ENTRY(n) \ -+ __asm__( \ -+ ".text\n\t" \ -+ ".if "#n" < 10 \n\t" \ -+ ".globl _ZN14nsXPTCStubBase5Stub"#n"Ev \n\t" \ -+ ".hidden _ZN14nsXPTCStubBase5Stub"#n"Ev \n\t" \ -+ ".type _ZN14nsXPTCStubBase5Stub"#n"Ev,@function \n\n" \ -+ "_ZN14nsXPTCStubBase5Stub"#n"Ev: \n\t" \ -+ ".elseif "#n" < 100 \n\t" \ -+ ".globl _ZN14nsXPTCStubBase6Stub"#n"Ev \n\t" \ -+ ".hidden _ZN14nsXPTCStubBase6Stub"#n"Ev \n\t" \ -+ ".type _ZN14nsXPTCStubBase6Stub"#n"Ev,@function \n\n" \ -+ "_ZN14nsXPTCStubBase6Stub"#n"Ev: \n\t" \ -+ ".elseif "#n" < 1000 \n\t" \ -+ ".globl _ZN14nsXPTCStubBase7Stub"#n"Ev \n\t" \ -+ ".hidden _ZN14nsXPTCStubBase7Stub"#n"Ev \n\t" \ -+ ".type _ZN14nsXPTCStubBase7Stub"#n"Ev,@function \n\n" \ -+ "_ZN14nsXPTCStubBase7Stub"#n"Ev: \n\t" \ -+ ".else \n\t" \ -+ ".err \"stub number "#n" >= 1000 not yet supported\"\n" \ -+ ".endif \n\t" \ -+ "li.d $t6, "#n" \n\t" \ -+ "b SharedStub \n" \ -+ ".if "#n" < 10 \n\t" \ -+ ".size _ZN14nsXPTCStubBase5Stub"#n"Ev,.-_ZN14nsXPTCStubBase5Stub"#n"Ev\n\t" \ -+ ".elseif "#n" < 100 \n\t" \ -+ ".size _ZN14nsXPTCStubBase6Stub"#n"Ev,.-_ZN14nsXPTCStubBase6Stub"#n"Ev\n\t" \ -+ ".else \n\t" \ -+ ".size _ZN14nsXPTCStubBase7Stub"#n"Ev,.-_ZN14nsXPTCStubBase7Stub"#n"Ev\n\t" \ -+ ".endif" \ -+); -+// clang-format on -+ -+#define SENTINEL_ENTRY(n) \ -+ nsresult nsXPTCStubBase::Sentinel##n() { \ -+ NS_ERROR("nsXPTCStubBase::Sentinel called"); \ -+ return NS_ERROR_NOT_IMPLEMENTED; \ -+ } -+ -+#include "xptcstubsdef.inc" --- -2.41.0 - diff --git a/build-aarch64-skia.patch b/build-aarch64-skia.patch deleted file mode 100644 index 342836f5386e6026c08ec9bec4d7567e3536bb31..0000000000000000000000000000000000000000 --- a/build-aarch64-skia.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff -up firefox-114.0/gfx/skia/skia/modules/skcms/src/Transform_inl.h.aarch64-skia firefox-114.0/gfx/skia/skia/modules/skcms/src/Transform_inl.h ---- firefox-114.0/gfx/skia/skia/modules/skcms/src/Transform_inl.h.aarch64-skia 2023-06-02 03:15:22.000000000 +0200 -+++ firefox-114.0/gfx/skia/skia/modules/skcms/src/Transform_inl.h 2023-06-05 10:18:46.942777997 +0200 -@@ -189,8 +189,6 @@ SI F F_from_Half(U16 half) { - SI U16 Half_from_F(F f) { - #if defined(USING_NEON_FP16) - return bit_pun(f); --#elif defined(USING_NEON_F16C) -- return (U16)vcvt_f16_f32(f); - #elif defined(USING_AVX512F) - return (U16)_mm512_cvtps_ph((__m512 )f, _MM_FROUND_CUR_DIRECTION ); - #elif defined(USING_AVX_F16C) -diff -up firefox-114.0/gfx/skia/skia/src/base/SkHalf.h.aarch64-skia firefox-114.0/gfx/skia/skia/src/base/SkHalf.h -diff -up firefox-114.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h.aarch64-skia firefox-114.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h ---- firefox-114.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h.aarch64-skia 2023-06-05 10:18:46.941777963 +0200 -+++ firefox-114.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h 2023-06-05 10:20:44.924843847 +0200 -@@ -1128,7 +1128,7 @@ SI F from_half(U16 h) { - } - - SI U16 to_half(F f) { --#if defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) \ -+#if 0 //defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) \ - && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds. - return sk_bit_cast(vcvt_f16_f32(f)); - diff --git a/build-arm-libopus.patch b/build-arm-libopus.patch deleted file mode 100644 index 1b3f31b58d8a40aab231709d2325fcfd224633b9..0000000000000000000000000000000000000000 --- a/build-arm-libopus.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up firefox-66.0/media/libopus/silk/arm/arm_silk_map.c.old firefox-66.0/media/libopus/silk/arm/arm_silk_map.c ---- firefox-66.0/media/libopus/silk/arm/arm_silk_map.c.old 2019-03-12 21:07:35.356677522 +0100 -+++ firefox-66.0/media/libopus/silk/arm/arm_silk_map.c 2019-03-12 21:07:42.937693394 +0100 -@@ -28,7 +28,7 @@ POSSIBILITY OF SUCH DAMAGE. - # include "config.h" - #endif - --#include "main_FIX.h" -+#include "fixed/main_FIX.h" - #include "NSQ.h" - #include "SigProc_FIX.h" - diff --git a/build-big-endian-errors.patch b/build-big-endian-errors.patch new file mode 100644 index 0000000000000000000000000000000000000000..b4bcb38f9e75964c3e6ceb25127d8cab98135f51 --- /dev/null +++ b/build-big-endian-errors.patch @@ -0,0 +1,57 @@ +diff -up firefox-102.0/third_party/libwebrtc/common_audio/wav_file.cc.big-endian-errors firefox-102.0/third_party/libwebrtc/common_audio/wav_file.cc +--- firefox-102.0/third_party/libwebrtc/common_audio/wav_file.cc.big-endian-errors 2022-08-17 13:19:53.056891028 +0200 ++++ firefox-102.0/third_party/libwebrtc/common_audio/wav_file.cc 2022-08-17 13:19:57.251879556 +0200 +@@ -89,9 +89,6 @@ void WavReader::Reset() { + + size_t WavReader::ReadSamples(const size_t num_samples, + int16_t* const samples) { +-#ifndef WEBRTC_ARCH_LITTLE_ENDIAN +-#error "Need to convert samples to big-endian when reading from WAV file" +-#endif + + size_t num_samples_left_to_read = num_samples; + size_t next_chunk_start = 0; +@@ -129,9 +126,6 @@ size_t WavReader::ReadSamples(const size + } + + size_t WavReader::ReadSamples(const size_t num_samples, float* const samples) { +-#ifndef WEBRTC_ARCH_LITTLE_ENDIAN +-#error "Need to convert samples to big-endian when reading from WAV file" +-#endif + + size_t num_samples_left_to_read = num_samples; + size_t next_chunk_start = 0; +@@ -213,9 +207,6 @@ WavWriter::WavWriter(FileWrapper file, + } + + void WavWriter::WriteSamples(const int16_t* samples, size_t num_samples) { +-#ifndef WEBRTC_ARCH_LITTLE_ENDIAN +-#error "Need to convert samples to little-endian when writing to WAV file" +-#endif + + for (size_t i = 0; i < num_samples; i += kMaxChunksize) { + const size_t num_remaining_samples = num_samples - i; +@@ -243,9 +234,6 @@ void WavWriter::WriteSamples(const int16 + } + + void WavWriter::WriteSamples(const float* samples, size_t num_samples) { +-#ifndef WEBRTC_ARCH_LITTLE_ENDIAN +-#error "Need to convert samples to little-endian when writing to WAV file" +-#endif + + for (size_t i = 0; i < num_samples; i += kMaxChunksize) { + const size_t num_remaining_samples = num_samples - i; +diff -up firefox-102.0/third_party/libwebrtc/common_audio/wav_header.cc.big-endian-errors firefox-102.0/third_party/libwebrtc/common_audio/wav_header.cc +--- firefox-102.0/third_party/libwebrtc/common_audio/wav_header.cc.big-endian-errors 2022-08-17 13:18:04.688187393 +0200 ++++ firefox-102.0/third_party/libwebrtc/common_audio/wav_header.cc 2022-08-17 13:18:22.451138816 +0200 +@@ -26,10 +26,6 @@ + namespace webrtc { + namespace { + +-#ifndef WEBRTC_ARCH_LITTLE_ENDIAN +-#error "Code not working properly for big endian platforms." +-#endif +- + #pragma pack(2) + struct ChunkHeader { + uint32_t ID; diff --git a/build-disable-elfhack.patch b/build-disable-elfhack.patch new file mode 100644 index 0000000000000000000000000000000000000000..c866a68c81f95c459f2140d8085bd7cde43f2b80 --- /dev/null +++ b/build-disable-elfhack.patch @@ -0,0 +1,12 @@ +diff -up firefox-128.0/toolkit/moz.configure.disable-elfhack firefox-128.0/toolkit/moz.configure +--- firefox-128.0/toolkit/moz.configure.disable-elfhack 2024-06-19 17:24:29.964976617 +0200 ++++ firefox-128.0/toolkit/moz.configure 2024-06-19 17:24:53.015843805 +0200 +@@ -1553,7 +1553,7 @@ with only_when("--enable-compile-environ + @depends(host, target) + def has_elfhack(host, target): + return ( +- target.kernel == "Linux" ++ False and target.kernel == "Linux" + and host.kernel == "Linux" + and target.cpu in ("arm", "aarch64", "x86", "x86_64") + ) diff --git a/build-disable-gamepad.patch b/build-disable-gamepad.patch new file mode 100644 index 0000000000000000000000000000000000000000..a7134d6f70b7b8826cd6b30f1ca75f901e631cff --- /dev/null +++ b/build-disable-gamepad.patch @@ -0,0 +1,12 @@ +diff -up firefox-128.0/dom/gamepad/moz.build.gamepad firefox-128.0/dom/gamepad/moz.build +--- firefox-128.0/dom/gamepad/moz.build.gamepad 2024-07-30 16:24:07.326519645 +0200 ++++ firefox-128.0/dom/gamepad/moz.build 2024-07-30 16:24:15.817492673 +0200 +@@ -60,7 +60,7 @@ elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "wi + elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "android": + UNIFIED_SOURCES += ["android/AndroidGamepad.cpp"] + elif CONFIG["OS_ARCH"] in ("Linux", "FreeBSD", "DragonFly"): +- UNIFIED_SOURCES += ["linux/LinuxGamepad.cpp"] ++ UNIFIED_SOURCES += ["fallback/FallbackGamepad.cpp"] + else: + UNIFIED_SOURCES += ["fallback/FallbackGamepad.cpp"] + diff --git a/build-ffvpx.patch b/build-ffvpx.patch new file mode 100644 index 0000000000000000000000000000000000000000..09e60bbbdcff33e3b3bd48198c0d6258945277e3 --- /dev/null +++ b/build-ffvpx.patch @@ -0,0 +1,24 @@ +diff -up thunderbird-128.0/media/ffvpx/libavcodec/av1dec.c.build-ffvpx thunderbird-128.0/media/ffvpx/libavcodec/av1dec.c +--- thunderbird-128.0/media/ffvpx/libavcodec/av1dec.c.build-ffvpx 2024-06-24 22:43:40.000000000 +0200 ++++ thunderbird-128.0/media/ffvpx/libavcodec/av1dec.c 2024-07-10 11:20:23.200948767 +0200 +@@ -887,7 +887,7 @@ static av_cold int av1_decode_init(AVCod + ff_cbs_fragment_reset(&s->current_obu); + } + +- s->dovi.logctx = avctx; ++ s->dovi.logctx = (AVContext *) avctx; + s->dovi.dv_profile = 10; // default for AV1 + sd = ff_get_coded_side_data(avctx, AV_PKT_DATA_DOVI_CONF); + if (sd && sd->size > 0) +diff -up thunderbird-128.0/media/ffvpx/libavcodec/libdav1d.c.build-ffvpx thunderbird-128.0/media/ffvpx/libavcodec/libdav1d.c +--- thunderbird-128.0/media/ffvpx/libavcodec/libdav1d.c.build-ffvpx 2024-07-10 12:46:57.005539959 +0200 ++++ thunderbird-128.0/media/ffvpx/libavcodec/libdav1d.c 2024-07-10 12:47:19.067507705 +0200 +@@ -289,7 +289,7 @@ static av_cold int libdav1d_init(AVCodec + c->delay = res > 1 ? res : 0; + #endif + +- dav1d->dovi.logctx = c; ++ dav1d->dovi.logctx = (AVContext *) c; + dav1d->dovi.dv_profile = 10; // default for AV1 + sd = ff_get_coded_side_data(c, AV_PKT_DATA_DOVI_CONF); + if (sd && sd->size > 0) diff --git a/build-libaom.patch b/build-libaom.patch new file mode 100644 index 0000000000000000000000000000000000000000..cab71b538e64626cbb94fd2a59b32c3258cdedea --- /dev/null +++ b/build-libaom.patch @@ -0,0 +1,20 @@ +diff -up firefox-128.0/config/external/moz.build.libaom firefox-128.0/config/external/moz.build +--- firefox-128.0/config/external/moz.build.libaom 2024-07-31 15:32:39.460374047 +0200 ++++ firefox-128.0/config/external/moz.build 2024-07-31 15:34:41.646064796 +0200 +@@ -39,8 +39,8 @@ if CONFIG["MOZ_VORBIS"]: + if not CONFIG["MOZ_SYSTEM_LIBVPX"]: + external_dirs += ["media/libvpx"] + ++external_dirs += ["media/libaom"] + if CONFIG["MOZ_AV1"]: +- external_dirs += ["media/libaom"] + external_dirs += ["media/libdav1d"] + + if not CONFIG["MOZ_SYSTEM_PNG"]: +diff -up firefox-128.0/third_party/aom/third_party/fastfeat/README.libaom firefox-128.0/third_party/aom/third_party/fastfeat/README +diff -up firefox-128.0/third_party/aom/third_party/googletest/README.libaom firefox-128.0/third_party/aom/third_party/googletest/README +diff -up firefox-128.0/third_party/aom/third_party/libwebm/README.libaom firefox-128.0/third_party/aom/third_party/libwebm/README +diff -up firefox-128.0/third_party/aom/third_party/libyuv/README.libaom firefox-128.0/third_party/aom/third_party/libyuv/README +diff -up firefox-128.0/third_party/aom/third_party/SVT-AV1/README.libaom firefox-128.0/third_party/aom/third_party/SVT-AV1/README +diff -up firefox-128.0/third_party/aom/third_party/vector/README.libaom firefox-128.0/third_party/aom/third_party/vector/README +diff -up firefox-128.0/third_party/aom/third_party/x86inc/README.libaom firefox-128.0/third_party/aom/third_party/x86inc/README diff --git a/build-ppc64-abiv2.patch b/build-ppc64-abiv2.patch new file mode 100644 index 0000000000000000000000000000000000000000..7a68390a61f155d6cec1e927a8e58a1fa26c12cc --- /dev/null +++ b/build-ppc64-abiv2.patch @@ -0,0 +1,12 @@ +diff -up firefox-115.0.2/security/nss/lib/freebl/sha512-p8.s.ppc-abiv2 firefox-115.0.2/security/nss/lib/freebl/sha512-p8.s +--- firefox-115.0.2/security/nss/lib/freebl/sha512-p8.s.ppc-abiv2 2023-07-25 09:01:42.602375809 +0200 ++++ firefox-115.0.2/security/nss/lib/freebl/sha512-p8.s 2023-07-25 09:01:48.273373924 +0200 +@@ -3,7 +3,7 @@ + # See the full LICENSE under scripts/. + + .machine "any" +-.abiversion 2 ++.abiversion 1 + .text + + .globl sha512_block_p8 diff --git a/build-rhel7-lower-node-min-version.patch b/build-rhel7-lower-node-min-version.patch new file mode 100644 index 0000000000000000000000000000000000000000..398cbc36d0107840bcce422cf3afee90bafce873 --- /dev/null +++ b/build-rhel7-lower-node-min-version.patch @@ -0,0 +1,11 @@ +--- firefox-115.8.0/python/mozbuild/mozbuild/nodeutil.py.lower-node-min-version 2024-02-12 21:53:56.000000000 +0200 ++++ firefox-115.8.0/python/mozbuild/mozbuild/nodeutil.py 2024-02-14 16:48:12.476182627 +0200 +@@ -13,7 +13,7 @@ from mozboot.util import get_tools_dir + from packaging.version import Version + from six import PY3 + +-NODE_MIN_VERSION = Version("12.22.12") ++NODE_MIN_VERSION = Version("10.24.0") + NPM_MIN_VERSION = Version("6.14.16") + + diff --git a/build-rhel7-nasm-dwarf.patch b/build-rhel7-nasm-dwarf.patch new file mode 100644 index 0000000000000000000000000000000000000000..5e2ba4ab0a6e5a42046102424a8f0dd5dc44e9ee --- /dev/null +++ b/build-rhel7-nasm-dwarf.patch @@ -0,0 +1,12 @@ +diff -up firefox-91.0.1/python/mozbuild/mozbuild/frontend/context.py.rhel7-nasm firefox-91.0.1/python/mozbuild/mozbuild/frontend/context.py +--- firefox-91.0.1/python/mozbuild/mozbuild/frontend/context.py.rhel7-nasm 2021-08-31 08:02:10.814740774 +0200 ++++ firefox-91.0.1/python/mozbuild/mozbuild/frontend/context.py 2021-08-31 08:04:03.967146994 +0200 +@@ -420,7 +420,7 @@ class AsmFlags(BaseCompileFlags): + if self._context.config.substs.get("OS_ARCH") == "WINNT": + debug_flags += ["-F", "cv8"] + elif self._context.config.substs.get("OS_ARCH") != "Darwin": +- debug_flags += ["-F", "dwarf"] ++ debug_flags += ["-f", "elf32"] + elif ( + self._context.config.substs.get("OS_ARCH") == "WINNT" + and self._context.config.substs.get("CPU_ARCH") == "aarch64" diff --git a/cookie b/cookie deleted file mode 100644 index 0c40e74b0e1f63fc2887ec7731f1a446f1a1b726..0000000000000000000000000000000000000000 --- a/cookie +++ /dev/null @@ -1,5 +0,0 @@ -# Netscape HTTP Cookie File -# http://curl.haxx.se/docs/http-cookies.html -# This file was generated by libcurl! Edit at your own risk. - -#HttpOnly_60.205.253.201 FALSE / FALSE 0 session .eJwlyzsOgDAIANC7MDuAlH68jAHaxslPopPx7sa4v3eDXucyr9vqDSYQF7Ys3MeKxRUlYgimpQR10m4w_H7b9bi-gO65p6qZc2IPiZgi4UiJmmExgecFviocdw.ZEIA0Q.iS1iDTyqnZuKAQviDxmeblV1SNs diff --git a/disable-openh264-download.patch b/disable-openh264-download.patch deleted file mode 100644 index 01fa2da94d5b848914f8dbcf0fb5e04d69ac019e..0000000000000000000000000000000000000000 --- a/disable-openh264-download.patch +++ /dev/null @@ -1,38 +0,0 @@ -diff -up firefox-81.0/toolkit/modules/GMPInstallManager.sys.mjs.old firefox-81.0/toolkit/modules/GMPInstallManager.sys.mjs ---- firefox-81.0/toolkit/modules/GMPInstallManager.sys.mjs.old 2020-09-25 10:39:04.769458703 +0200 -+++ firefox-81.0/toolkit/modules/GMPInstallManager.sys.mjs 2020-09-25 10:39:22.038504747 +0200 -@@ -54,10 +54,6 @@ function getScopedLogger(prefix) { - - const LOCAL_GMP_SOURCES = [ - { -- id: "gmp-gmpopenh264", -- src: "chrome://global/content/gmp-sources/openh264.json", -- }, -- { - id: "gmp-widevinecdm", - src: "chrome://global/content/gmp-sources/widevinecdm.json", - }, -diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn ---- a/toolkit/content/jar.mn -+++ b/toolkit/content/jar.mn -@@ -108,7 +108,6 @@ toolkit.jar: - #ifdef XP_MACOSX - content/global/macWindowMenu.js - #endif -- content/global/gmp-sources/openh264.json (gmp-sources/openh264.json) - content/global/gmp-sources/widevinecdm.json (gmp-sources/widevinecdm.json) - - # Third party files -diff --git a/toolkit/modules/GMPInstallManager.sys.mjs b/toolkit/modules/GMPInstallManager.sys.mjs ---- a/toolkit/modules/GMPInstallManager.sys.mjs -+++ b/toolkit/modules/GMPInstallManager.sys.mjs -@@ -238,6 +234,9 @@ GMPInstallManager.prototype = { - * downloaderr, verifyerr or previouserrorencountered - */ - installAddon(gmpAddon) { -+ if (gmpAddon.isOpenH264) { -+ return Promise.reject({ type: "disabled" }); -+ } - if (this._deferred) { - let log = getScopedLogger("GMPInstallManager.installAddon"); - log.error("previous error encountered"); diff --git a/disable-pipewire.patch b/disable-pipewire.patch new file mode 100644 index 0000000000000000000000000000000000000000..84017dea966015a74054921e5a8276a050d58285 --- /dev/null +++ b/disable-pipewire.patch @@ -0,0 +1,274 @@ +diff -up firefox-128.0/dom/media/webrtc/third_party_build/webrtc.mozbuild.disable-pipewire firefox-128.0/dom/media/webrtc/third_party_build/webrtc.mozbuild +--- firefox-128.0/dom/media/webrtc/third_party_build/webrtc.mozbuild.disable-pipewire 2024-07-17 14:01:36.290603114 +0200 ++++ firefox-128.0/dom/media/webrtc/third_party_build/webrtc.mozbuild 2024-07-17 14:52:02.039208338 +0200 +@@ -31,7 +31,7 @@ if CONFIG["MOZ_WEBRTC"]: + and CONFIG["TARGET_CPU"].startswith("mips") + ) + ): +- DEFINES["WEBRTC_USE_PIPEWIRE"] = True ++ DEFINES["WEBRTC_USE_PIPEWIRE"] = False + elif CONFIG["OS_TARGET"] == "Darwin": + DEFINES["WEBRTC_MAC"] = True + elif CONFIG["OS_TARGET"] == "WINNT": +diff -up firefox-128.0/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build.disable-pipewire firefox-128.0/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build +--- firefox-128.0/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build.disable-pipewire 2024-07-17 14:01:36.291603109 +0200 ++++ firefox-128.0/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build 2024-07-17 14:56:35.419826494 +0200 +@@ -241,102 +241,6 @@ if CONFIG["TARGET_CPU"] == "aarch64": + DEFINES["WEBRTC_ARCH_ARM64"] = True + DEFINES["WEBRTC_HAS_NEON"] = True + +-if CONFIG["TARGET_CPU"] == "arm": +- +- CXXFLAGS += [ +- "-mfpu=neon" +- ] +- +- DEFINES["WEBRTC_ARCH_ARM"] = True +- DEFINES["WEBRTC_ARCH_ARM_V7"] = True +- DEFINES["WEBRTC_HAS_NEON"] = True +- DEFINES["WEBRTC_USE_PIPEWIRE"] = True +- DEFINES["_GNU_SOURCE"] = True +- +- LOCAL_INCLUDES += [ +- "/gfx/angle/checkout/include/", +- "/third_party/drm/drm/", +- "/third_party/drm/drm/include/", +- "/third_party/drm/drm/include/libdrm/", +- "/third_party/gbm/gbm/", +- "/third_party/libepoxy/libepoxy/include/", +- "/third_party/pipewire/" +- ] +- +- SOURCES += [ +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc" +- ] +- +- UNIFIED_SOURCES += [ +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/mouse_cursor_monitor_pipewire.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/restore_token_manager.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screen_capture_portal_interface.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_stream_utils.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc" +- ] +- +-if CONFIG["TARGET_CPU"] == "mips32": +- +- DEFINES["MIPS32_LE"] = True +- DEFINES["MIPS_FPU_LE"] = True +- DEFINES["WEBRTC_USE_PIPEWIRE"] = True +- DEFINES["_GNU_SOURCE"] = True +- +- LOCAL_INCLUDES += [ +- "/gfx/angle/checkout/include/", +- "/third_party/drm/drm/", +- "/third_party/drm/drm/include/", +- "/third_party/drm/drm/include/libdrm/", +- "/third_party/gbm/gbm/", +- "/third_party/libepoxy/libepoxy/include/", +- "/third_party/pipewire/" +- ] +- +- SOURCES += [ +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc" +- ] +- +- UNIFIED_SOURCES += [ +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/mouse_cursor_monitor_pipewire.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/restore_token_manager.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screen_capture_portal_interface.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_stream_utils.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc" +- ] +- +-if CONFIG["TARGET_CPU"] == "mips64": +- +- DEFINES["WEBRTC_USE_PIPEWIRE"] = True +- DEFINES["_GNU_SOURCE"] = True +- +- LOCAL_INCLUDES += [ +- "/gfx/angle/checkout/include/", +- "/third_party/drm/drm/", +- "/third_party/drm/drm/include/", +- "/third_party/drm/drm/include/libdrm/", +- "/third_party/gbm/gbm/", +- "/third_party/libepoxy/libepoxy/include/", +- "/third_party/pipewire/" +- ] +- +- SOURCES += [ +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc" +- ] +- +- UNIFIED_SOURCES += [ +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/mouse_cursor_monitor_pipewire.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/restore_token_manager.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screen_capture_portal_interface.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_stream_utils.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc" +- ] +- + if CONFIG["TARGET_CPU"] == "ppc64": + + DEFINES["USE_X11"] = "1" +@@ -389,35 +293,6 @@ if CONFIG["MOZ_DEBUG"] == "1" and CONFIG + + DEFINES["_HAS_ITERATOR_DEBUGGING"] = "0" + +-if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "aarch64": +- +- DEFINES["WEBRTC_USE_PIPEWIRE"] = True +- DEFINES["_GNU_SOURCE"] = True +- +- LOCAL_INCLUDES += [ +- "/gfx/angle/checkout/include/", +- "/third_party/drm/drm/", +- "/third_party/drm/drm/include/", +- "/third_party/drm/drm/include/libdrm/", +- "/third_party/gbm/gbm/", +- "/third_party/libepoxy/libepoxy/include/", +- "/third_party/pipewire/" +- ] +- +- SOURCES += [ +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc" +- ] +- +- UNIFIED_SOURCES += [ +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/mouse_cursor_monitor_pipewire.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/restore_token_manager.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screen_capture_portal_interface.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_stream_utils.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc" +- ] +- + if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "riscv64": + + DEFINES["USE_X11"] = "1" +@@ -446,95 +321,6 @@ if CONFIG["OS_TARGET"] == "Linux" and CO + "/third_party/libwebrtc/modules/desktop_capture/linux/x11/x_window_property.cc" + ] + +-if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "x86": +- +- CXXFLAGS += [ +- "-msse2" +- ] +- +- DEFINES["WEBRTC_USE_PIPEWIRE"] = True +- DEFINES["_GNU_SOURCE"] = True +- +- LOCAL_INCLUDES += [ +- "/gfx/angle/checkout/include/", +- "/third_party/drm/drm/", +- "/third_party/drm/drm/include/", +- "/third_party/drm/drm/include/libdrm/", +- "/third_party/gbm/gbm/", +- "/third_party/libepoxy/libepoxy/include/", +- "/third_party/pipewire/" +- ] +- +- SOURCES += [ +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc" +- ] +- +- UNIFIED_SOURCES += [ +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/mouse_cursor_monitor_pipewire.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/restore_token_manager.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screen_capture_portal_interface.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_stream_utils.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc" +- ] +- +-if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "x86_64": +- +- DEFINES["WEBRTC_USE_PIPEWIRE"] = True +- DEFINES["_GNU_SOURCE"] = True +- +- LOCAL_INCLUDES += [ +- "/gfx/angle/checkout/include/", +- "/third_party/drm/drm/", +- "/third_party/drm/drm/include/", +- "/third_party/drm/drm/include/libdrm/", +- "/third_party/gbm/gbm/", +- "/third_party/libepoxy/libepoxy/include/", +- "/third_party/pipewire/" +- ] +- +- SOURCES += [ +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc" +- ] +- +- UNIFIED_SOURCES += [ +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/mouse_cursor_monitor_pipewire.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/restore_token_manager.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screen_capture_portal_interface.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_stream_utils.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc" +- ] +- +-if CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "aarch64": +- +- DEFINES["USE_X11"] = "1" +- DEFINES["WEBRTC_USE_X11"] = True +- +- OS_LIBS += [ +- "X11", +- "Xcomposite", +- "Xdamage", +- "Xext", +- "Xfixes", +- "Xrandr", +- "Xrender" +- ] +- +- UNIFIED_SOURCES += [ +- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/mouse_cursor_monitor_x11.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/screen_capturer_x11.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/shared_x_display.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/window_capturer_x11.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/window_finder_x11.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/window_list_utils.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/x_atom_cache.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/x_error_trap.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/x_server_pixel_buffer.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/x_window_property.cc" +- ] + + if CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "arm": + +diff -up firefox-128.0/third_party/libwebrtc/modules/portal/portal_gn/moz.build.disable-pipewire firefox-128.0/third_party/libwebrtc/modules/portal/portal_gn/moz.build +--- firefox-128.0/third_party/libwebrtc/modules/portal/portal_gn/moz.build.disable-pipewire 2024-07-04 18:20:41.000000000 +0200 ++++ firefox-128.0/third_party/libwebrtc/modules/portal/portal_gn/moz.build 2024-07-17 14:01:36.291603109 +0200 +@@ -27,7 +27,7 @@ DEFINES["WEBRTC_MOZILLA_BUILD"] = True + DEFINES["WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS"] = "0" + DEFINES["WEBRTC_POSIX"] = True + DEFINES["WEBRTC_STRICT_FIELD_TRIALS"] = "0" +-DEFINES["WEBRTC_USE_PIPEWIRE"] = True ++DEFINES["WEBRTC_USE_PIPEWIRE"] = False + DEFINES["_FILE_OFFSET_BITS"] = "64" + DEFINES["_GNU_SOURCE"] = True + DEFINES["_LARGEFILE64_SOURCE"] = True +diff -up firefox-128.0/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build.disable-pipewire firefox-128.0/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build +--- firefox-128.0/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build.disable-pipewire 2024-07-04 18:20:41.000000000 +0200 ++++ firefox-128.0/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build 2024-07-17 14:01:36.291603109 +0200 +@@ -25,7 +25,7 @@ DEFINES["WEBRTC_MOZILLA_BUILD"] = True + DEFINES["WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS"] = "0" + DEFINES["WEBRTC_POSIX"] = True + DEFINES["WEBRTC_STRICT_FIELD_TRIALS"] = "0" +-DEFINES["WEBRTC_USE_PIPEWIRE"] = True ++DEFINES["WEBRTC_USE_PIPEWIRE"] = False + DEFINES["_FILE_OFFSET_BITS"] = "64" + DEFINES["_GNU_SOURCE"] = True + DEFINES["_LARGEFILE64_SOURCE"] = True diff --git a/dist b/dist new file mode 100644 index 0000000000000000000000000000000000000000..1fe92cf0fdf9c2625d878a2ace258f64c1e8ca44 --- /dev/null +++ b/dist @@ -0,0 +1 @@ +an8_10 diff --git a/distribution.ini b/distribution.ini index 11f1f96d5696592ba20b88bd8521e20f2e659d8c..5d5c4d65b6ecd8fc411ea5e9dd5ce4b80e8a09bc 100644 --- a/distribution.ini +++ b/distribution.ini @@ -1,9 +1,9 @@ [Global] -id=fedora +id=redhat version=1.0 -about=Mozilla Firefox for Fedora +about=Mozilla Firefox for Red Hat Enterprise Linux [Preferences] -app.distributor=fedora -app.distributor.channel=fedora -app.partner.fedora=fedora +app.distributor=redhat +app.distributor.channel=redhat +app.partner.redhat=redhat diff --git a/download b/download index dfa654ccd44ee021a33994ff488e20127f9cefc2..6e59d93efd536a8517f47ff13867a2f76149b9c3 100644 --- a/download +++ b/download @@ -1,3 +1,7 @@ -d476a335bb5c077d51d40cbe20a92f92 cbindgen-vendor.tar.xz -c397dc2d33e0f9be52d9b860ca75644b mochitest-python.tar.gz -2a7d5db1a84287ba0d3e36e4640626a5 firefox-115.13.0esr.source.tar.xz \ No newline at end of file +fc25f988b87b5187d4e2f006efa699a3 cbindgen-vendor.tar.xz +e028c4c284f5dd5e34ffbaebd2866005 firefox-128.3.1esr.processed-source.tar.xz +cb946f6aae2abd13f4141ecb2872c343 firefox-langpacks-128.3.1esr-20241009.tar.xz +b3c1d2ea615cb0195f4f62b005773262 mochitest-python.tar.gz +7b35b9a003996b1f1dbc3cd936a609f2 nspr-4.35.0-1.el8_1.src.rpm +ab085bce989de91681f48fdd05be4c0f nss-3.101.0-7.el8_2.src.rpm +dbf6357877e3e1042de1a95cdfb61507 nss-3.101.0-7.el9_2.src.rpm diff --git a/en-US.xpi b/en-US.xpi deleted file mode 100644 index a629c091b3e95aea5c74e518e25e333a245a3116..0000000000000000000000000000000000000000 Binary files a/en-US.xpi and /dev/null differ diff --git a/firefox-112.0-commasplit.patch b/firefox-112.0-commasplit.patch deleted file mode 100644 index a56aec4108ddebcc7e8dc56ce39674b17b1257ea..0000000000000000000000000000000000000000 --- a/firefox-112.0-commasplit.patch +++ /dev/null @@ -1,76 +0,0 @@ ---- firefox-111.0.1/build/moz.configure/rust.configure 2023-03-21 06:16:03.000000000 -0700 -+++ firefox-111.0.1/build/moz.configure/rust.configure.new 2023-04-05 08:57:29.403219120 -0700 -@@ -593,7 +593,7 @@ - - # ============================================================== - --option(env="RUSTFLAGS", nargs=1, help="Rust compiler flags") -+option(env="RUSTFLAGS", nargs=1, help="Rust compiler flags", comma_split=False) - set_config("RUSTFLAGS", depends("RUSTFLAGS")(lambda flags: flags)) - - ---- firefox-111.0.1/python/mozbuild/mozbuild/configure/options.py 2023-03-21 06:16:09.000000000 -0700 -+++ firefox-111.0.1/python/mozbuild/mozbuild/configure/options.py.new 2023-04-05 08:57:31.270193468 -0700 -@@ -191,6 +191,10 @@ - to instantiate an option indirectly. Set this to a positive integer to - force the script to look into a deeper stack frame when inferring the - `category`. -+ - `comma_split` specifies whether the value string should be split on -+ commas. The default is True. Setting it False is necessary for things -+ like compiler flags which should be a single string that may contain -+ commas. - """ - - __slots__ = ( -@@ -205,6 +209,7 @@ - "possible_origins", - "category", - "define_depth", -+ "comma_split", - ) - - def __init__( -@@ -218,6 +223,7 @@ - category=None, - help=None, - define_depth=0, -+ comma_split=True, - ): - if not name and not env: - raise InvalidOptionError( -@@ -335,9 +341,10 @@ - self.choices = choices - self.help = help - self.category = category or _infer_option_category(define_depth) -+ self.comma_split = comma_split - - @staticmethod -- def split_option(option): -+ def split_option(option, comma_split=True): - """Split a flag or variable into a prefix, a name and values - - Variables come in the form NAME=values (no prefix). -@@ -350,7 +357,13 @@ - - elements = option.split("=", 1) - name = elements[0] -- values = tuple(elements[1].split(",")) if len(elements) == 2 else () -+ if len(elements) == 2: -+ if comma_split: -+ values = tuple(elements[1].split(",")) -+ else: -+ values = (elements[1],) -+ else: -+ values = () - if name.startswith("--"): - name = name[2:] - if not name.islower(): -@@ -426,7 +439,7 @@ - % (option, origin, ", ".join(self.possible_origins)) - ) - -- prefix, name, values = self.split_option(option) -+ prefix, name, values = self.split_option(option, self.comma_split) - option = self._join_option(prefix, name) - - assert name in (self.name, self.env) diff --git a/firefox-anolis-default-prefs.js b/firefox-anolis-default-prefs.js index 1cbf32e560dc65b85e119eed07fbf532405175b6..ad8dbea1ecf60bd645357502178a9398b5d28aaa 100644 --- a/firefox-anolis-default-prefs.js +++ b/firefox-anolis-default-prefs.js @@ -14,18 +14,29 @@ pref("browser.shell.checkDefaultBrowser", false); pref("network.manage-offline-status", true); pref("extensions.shownSelectionUI", true); pref("ui.SpellCheckerUnderlineStyle", 1); -pref("startup.homepage_override_url", ""); -pref("browser.startup.homepage", "data:text/plain,browser.startup.homepage=https://openanolis.cn//"); -pref("browser.newtabpage.pinned", '[{"url":"https://openanolis.cn//","title":"OpenAnolis - Start Page"}]'); -pref("media.gmp-gmpopenh264.provider.enabled",false); -pref("media.gmp-gmpopenh264.autoupdate",false); +pref("startup.homepage_override_url", "https://openanolis.cn/"); +pref("startup.homepage_welcome_url", "https://openanolis.cn/"); +pref("browser.startup.homepage", "data:text/plain,browser.startup.homepage=file:///%PREFIX%/share/doc/HTML/index.html"); +pref("media.gmp-gmpopenh264.autoupdate",true); pref("media.gmp-gmpopenh264.enabled",false); pref("media.gmp.decoder.enabled", true); pref("plugins.notifyMissingFlash", false); +/* See https://bugzilla.redhat.com/show_bug.cgi?id=1226489 */ pref("browser.display.use_system_colors", false); +/* Allow sending credetials to all https:// sites */ pref("network.negotiate-auth.trusted-uris", "https://"); -pref("spellchecker.dictionary_path","/usr/share/hunspell"); +pref("security.use_sqldb", false); +pref("spellchecker.dictionary_path","/usr/share/myspell"); +/* Disable DoH by default */ pref("network.trr.mode", 5); +/* Enable per-user policy dir, see mozbz#1583466 */ pref("browser.policies.perUserDir", true); pref("browser.gnome-search-provider.enabled",true); +/* Enable ffvpx playback for WebRTC */ pref("media.navigator.mediadatadecoder_vpx_enabled", true); +/* See https://bugzilla.redhat.com/show_bug.cgi?id=1672424 */ +pref("storage.nfs_filesystem", true); +/* Disable Private Attribution collection and submission */ +pref("dom.private-attribution.submission.enabled", false); +/* ECH is not supported in the system nss */ +pref("security.tls.ech.grease_probability", 0); diff --git a/firefox-enable-addons.patch b/firefox-enable-addons.patch index 15d0707cf01087cdee72c53a637c950f11c1d45b..5aeb23f7bc38d5795c23ecbc54162b70c8a860b7 100644 --- a/firefox-enable-addons.patch +++ b/firefox-enable-addons.patch @@ -1,10 +1,10 @@ -diff -up firefox-55.0/browser/app/profile/firefox.js.addons firefox-55.0/browser/app/profile/firefox.js ---- firefox-55.0/browser/app/profile/firefox.js.addons 2017-08-02 10:58:30.566363833 +0200 -+++ firefox-55.0/browser/app/profile/firefox.js 2017-08-02 10:59:15.377216959 +0200 -@@ -65,7 +65,8 @@ pref("extensions.systemAddon.update.url" +diff -up firefox-128.0/browser/app/profile/firefox.js.addons firefox-128.0/browser/app/profile/firefox.js +--- firefox-128.0/browser/app/profile/firefox.js.addons 2024-06-13 11:47:04.255428350 +0200 ++++ firefox-128.0/browser/app/profile/firefox.js 2024-06-13 11:53:00.442837371 +0200 +@@ -56,7 +56,8 @@ pref("extensions.systemAddon.update.enab // Disable add-ons that are not installed by the user in all scopes by default. - // See the SCOPE constants in AddonManager.jsm for values to use here. + // See the SCOPE constants in AddonManager.sys.mjs for values to use here. -pref("extensions.autoDisableScopes", 15); +pref("extensions.autoDisableScopes", 0); +pref("extensions.showMismatchUI", false); diff --git a/firefox-enable-vaapi.patch b/firefox-enable-vaapi.patch deleted file mode 100644 index d94d399fff45a867b3ac2054c514bb902c5a4c96..0000000000000000000000000000000000000000 --- a/firefox-enable-vaapi.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff -up firefox-115.0/widget/gtk/GfxInfo.cpp.firefox-enable-vaapi firefox-115.0/widget/gtk/GfxInfo.cpp ---- firefox-115.0/widget/gtk/GfxInfo.cpp.firefox-enable-vaapi 2023-06-29 12:18:53.179833765 +0200 -+++ firefox-115.0/widget/gtk/GfxInfo.cpp 2023-06-29 12:19:33.256212776 +0200 -@@ -970,14 +970,6 @@ const nsTArray& GfxInfo:: - nsIGfxInfo::FEATURE_BLOCKED_DEVICE, DRIVER_COMPARISON_IGNORED, - V(0, 0, 0, 0), "FEATURE_HARDWARE_VIDEO_DECODING_NO_R600", ""); - -- // Disable on Release/late Beta on AMD --#if !defined(EARLY_BETA_OR_EARLIER) -- APPEND_TO_DRIVER_BLOCKLIST(OperatingSystem::Linux, DeviceFamily::AtiAll, -- nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING, -- nsIGfxInfo::FEATURE_BLOCKED_DEVICE, -- DRIVER_COMPARISON_IGNORED, V(0, 0, 0, 0), -- "FEATURE_HARDWARE_VIDEO_DECODING_DISABLE", ""); --#endif - //////////////////////////////////// - // FEATURE_HW_DECODED_VIDEO_ZERO_COPY - ALLOWLIST - APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Linux, DeviceFamily::All, diff --git a/firefox-gcc-13-build.patch b/firefox-gcc-13-build.patch deleted file mode 100644 index 8512b767a4eb706aafc6fe3cfab2d0cdb550df02..0000000000000000000000000000000000000000 --- a/firefox-gcc-13-build.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- firefox-109.0.1/gfx/2d/Rect.h.old 2023-02-07 09:44:24.946279843 +0100 -+++ firefox-109.0.1/gfx/2d/Rect.h 2023-02-07 09:44:47.969032049 +0100 -@@ -324,8 +324,8 @@ IntRectTyped RoundedToInt(const R - - template - bool RectIsInt32Safe(const RectTyped& aRect) { -- float min = (float)std::numeric_limits::min(); -- float max = (float)std::numeric_limits::max(); -+ float min = (float)std::numeric_limits::min(); -+ float max = (float)std::numeric_limits::max(); - return aRect.x > min && aRect.y > min && aRect.width < max && - aRect.height < max && aRect.XMost() < max && aRect.YMost() < max; - } -diff -up firefox-109.0.1/toolkit/components/telemetry/pingsender/pingsender.cpp.old firefox-109.0.1/toolkit/components/telemetry/pingsender/pingsender.cpp ---- firefox-109.0.1/toolkit/components/telemetry/pingsender/pingsender.cpp.old 2023-02-07 11:03:41.788720090 +0100 -+++ firefox-109.0.1/toolkit/components/telemetry/pingsender/pingsender.cpp 2023-02-07 11:04:29.195345659 +0100 -@@ -10,6 +10,7 @@ - #include - #include - #include -+#include - - #include - diff --git a/firefox-gcc-always-inline.patch b/firefox-gcc-always-inline.patch deleted file mode 100644 index d7af60f1e70cbea529b4ef9a3e2a5f0d69883e84..0000000000000000000000000000000000000000 --- a/firefox-gcc-always-inline.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -up firefox-114.0.2/gfx/wr/swgl/src/gl.cc.inline firefox-114.0.2/gfx/wr/swgl/src/gl.cc ---- firefox-114.0.2/gfx/wr/swgl/src/gl.cc.inline 2023-06-22 11:08:53.294593327 +0200 -+++ firefox-114.0.2/gfx/wr/swgl/src/gl.cc 2023-06-22 11:12:43.663486734 +0200 -@@ -58,9 +58,7 @@ WINBASEAPI BOOL WINAPI QueryPerformanceF - } - - #else --// GCC is slower when dealing with always_inline, especially in debug builds. --// When using Clang, use always_inline more aggressively. --# if defined(__clang__) || defined(NDEBUG) -+# if defined(__clang__) || defined (__GNUC__) || defined(NDEBUG) - # define ALWAYS_INLINE __attribute__((always_inline)) inline - # else - # define ALWAYS_INLINE inline diff --git a/firefox-i686-build.patch b/firefox-i686-build.patch deleted file mode 100644 index 320199fa9b2962cb9840a5d8d7e038c12477c519..0000000000000000000000000000000000000000 --- a/firefox-i686-build.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up firefox-105.0/mozglue/misc/SIMD_avx2.cpp.old firefox-105.0/mozglue/misc/SIMD_avx2.cpp ---- firefox-105.0/mozglue/misc/SIMD_avx2.cpp.old 2022-09-22 21:35:07.006221995 +0200 -+++ firefox-105.0/mozglue/misc/SIMD_avx2.cpp 2022-09-22 21:36:12.972480517 +0200 -@@ -55,7 +55,7 @@ __m256i CmpEq256(__m256i a, __m256i b) { - return _mm256_cmpeq_epi64(a, b); - } - --# if defined(__GNUC__) && !defined(__clang__) -+# if 0 - - // See the comment in SIMD.cpp over Load32BitsIntoXMM. This is just adapted - // from that workaround. Testing this, it also yields the correct instructions diff --git a/firefox-mozconfig b/firefox-mozconfig index af5d664fca5d818d43ba77ccf08d9981e2bb698c..9944800a83c954b11babb74c4216d7263499f017 100644 --- a/firefox-mozconfig +++ b/firefox-mozconfig @@ -1,26 +1,31 @@ . $topsrcdir/browser/config/mozconfig -ac_add_options --with-system-zlib +ac_add_options --allow-addon-sideload +ac_add_options --disable-crashreporter ac_add_options --disable-strip -ac_add_options --enable-necko-wifi ac_add_options --disable-updater +ac_add_options --enable-av1 ac_add_options --enable-chrome-format=omni +ac_add_options --enable-js-shell +ac_add_options --enable-necko-wifi +ac_add_options --enable-official-branding ac_add_options --enable-pulseaudio -ac_add_options --enable-av1 -ac_add_options --without-system-icu ac_add_options --enable-release -ac_add_options --update-channel=release -ac_add_options --allow-addon-sideload -ac_add_options --with-system-fdk-aac -ac_add_options --enable-js-shell -ac_add_options --with-unsigned-addon-scopes=app,system +ac_add_options --enable-system-ffi ac_add_options --without-sysroot +ac_add_options --without-system-icu ac_add_options --without-wasm-sandboxed-libraries -ac_add_options --enable-libproxy +ac_add_options --with-system-jpeg +ac_add_options --with-system-zlib +ac_add_options --with-unsigned-addon-scopes=app,system export BUILD_OFFICIAL=1 export MOZILLA_OFFICIAL=1 -export MOZ_TELEMETRY_REPORTING=1 +export MOZ_UPDATE_CHANNEL=release +export MOZ_APP_REMOTINGNAME=firefox +mk_add_options MOZ_TELEMETRY_REPORTING= +mk_add_options MOZ_NORMANDY= +mk_add_options MOZ_SERVICES_HEALTHREPORT= mk_add_options BUILD_OFFICIAL=1 mk_add_options MOZILLA_OFFICIAL=1 mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir diff --git a/firefox-redhat-default-prefs.js b/firefox-redhat-default-prefs.js new file mode 100644 index 0000000000000000000000000000000000000000..4263a3d5d93dfbf3f48cf671cc708575603ee70b --- /dev/null +++ b/firefox-redhat-default-prefs.js @@ -0,0 +1,42 @@ +pref("app.update.auto", false); +pref("app.update.enabled", false); +pref("app.update.autoInstallEnabled", false); +pref("general.smoothScroll", true); +pref("intl.locale.requested", ""); +pref("toolkit.storage.synchronous", 0); +pref("toolkit.networkmanager.disable", false); +pref("offline.autoDetect", true); +pref("browser.backspace_action", 2); +pref("browser.display.use_system_colors", true); +pref("browser.download.folderList", 1); +pref("browser.link.open_external", 3); +pref("browser.shell.checkDefaultBrowser", false); +pref("network.manage-offline-status", true); +pref("extensions.shownSelectionUI", true); +pref("ui.SpellCheckerUnderlineStyle", 1); +pref("startup.homepage_override_url", "%HOMEPAGE%"); +pref("startup.homepage_welcome_url", "%HOMEPAGE%"); +pref("browser.startup.homepage", "data:text/plain,browser.startup.homepage=file:///%PREFIX%/share/doc/HTML/index.html"); +pref("media.gmp-gmpopenh264.autoupdate",true); +pref("media.gmp-gmpopenh264.enabled",false); +pref("media.gmp.decoder.enabled", true); +pref("plugins.notifyMissingFlash", false); +/* See https://bugzilla.redhat.com/show_bug.cgi?id=1226489 */ +pref("browser.display.use_system_colors", false); +/* Allow sending credetials to all https:// sites */ +pref("network.negotiate-auth.trusted-uris", "https://"); +pref("security.use_sqldb", false); +pref("spellchecker.dictionary_path","/usr/share/myspell"); +/* Disable DoH by default */ +pref("network.trr.mode", 5); +/* Enable per-user policy dir, see mozbz#1583466 */ +pref("browser.policies.perUserDir", true); +pref("browser.gnome-search-provider.enabled",true); +/* Enable ffvpx playback for WebRTC */ +pref("media.navigator.mediadatadecoder_vpx_enabled", true); +/* See https://bugzilla.redhat.com/show_bug.cgi?id=1672424 */ +pref("storage.nfs_filesystem", true); +/* Disable Private Attribution collection and submission */ +pref("dom.private-attribution.submission.enabled", false); +/* ECH is not supported in the system nss */ +pref("security.tls.ech.grease_probability", 0); diff --git a/firefox-tests-xpcshell-freeze.patch b/firefox-tests-xpcshell-freeze.patch deleted file mode 100644 index 111541797028ec20465fa0d2876dca70ee5db6cf..0000000000000000000000000000000000000000 --- a/firefox-tests-xpcshell-freeze.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -up firefox-88.0/testing/xpcshell/runxpcshelltests.py.old firefox-88.0/testing/xpcshell/runxpcshelltests.py ---- firefox-88.0/testing/xpcshell/runxpcshelltests.py.old 2021-04-30 10:45:14.466616224 +0200 -+++ firefox-88.0/testing/xpcshell/runxpcshelltests.py 2021-04-30 10:45:21.339525085 +0200 -@@ -1382,8 +1382,8 @@ class XPCShellTests(object): - self.log.info("Process %s" % label) - self.log.info(msg) - -- dumpOutput(proc.stdout, "stdout") -- dumpOutput(proc.stderr, "stderr") -+ #dumpOutput(proc.stdout, "stdout") -+ #dumpOutput(proc.stderr, "stderr") - self.nodeProc = {} - - def startHttp3Server(self): diff --git a/firefox-wayland.desktop b/firefox-wayland.desktop deleted file mode 100644 index cd2dd61c24685759fa9e87f7dd24a598c8ace8ab..0000000000000000000000000000000000000000 --- a/firefox-wayland.desktop +++ /dev/null @@ -1,235 +0,0 @@ -[Desktop Entry] -Version=1.0 -Name=Firefox on Wayland -GenericName=Web Browser -Comment=Browse the Web -Exec=firefox-wayland --name firefox-wayland %u -Icon=firefox -Terminal=false -Type=Application -MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https; -StartupNotify=true -Categories=Network;WebBrowser; -Keywords=web;browser;internet; -Actions=new-window;new-private-window;profile-manager-window; - -[Desktop Action new-window] -Name=Open a 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-wayland --name firefox-wayland --new-window %u - -[Desktop Action new-private-window] -Name=Open a 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]=Neuvo barcon privou -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-wayland --private-window --name firefox-wayland %u - -[Desktop Action profile-manager-window] -Name=Open the Profile Manager -Name[cs]=Správa profilů -Exec=firefox-wayland --name firefox-wayland --ProfileManager diff --git a/firefox-wayland.sh.in b/firefox-wayland.sh.in deleted file mode 100644 index bd6806824f22e5d5675583567e0cab2bb433ca3e..0000000000000000000000000000000000000000 --- a/firefox-wayland.sh.in +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/bash -# -# Run Firefox under Wayland -# - -export MOZ_ENABLE_WAYLAND=1 -exec /__PREFIX__/bin/firefox "$@" diff --git a/firefox.desktop b/firefox.desktop index 02e156d8317f6d6bd9827aba62fe36aeb11341df..a152ed4c1318bf81b64c374656f08aba7418cee0 100644 --- a/firefox.desktop +++ b/firefox.desktop @@ -37,7 +37,7 @@ 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[pl]=Przeglądanie stron WWW Comment[pt]=Navegue na Internet Comment[pt_BR]=Navegue na Internet Comment[sk]=Prehliadanie internetu @@ -272,5 +272,4 @@ Exec=firefox --private-window %u Name=Open the Profile Manager Name[cs]=Správa profilů Name[de]=Profilverwaltung öffnen -Name[fr]=Ouvrir le gestionnaire de profils Exec=firefox --ProfileManager diff --git a/firefox.sh.in b/firefox.sh.in index 078627ffc79894f57110290683fde2c746382059..1a1c4b5ad6640e727e74e99b1efe284476804d17 100644 --- a/firefox.sh.in +++ b/firefox.sh.in @@ -17,10 +17,10 @@ # Copyright (C) 1998 Netscape Communications Corporation. All # Rights Reserved. # -# Contributor(s): +# Contributor(s): # -## +## ## Usage: ## ## $ firefox @@ -64,12 +64,13 @@ MOZ_DIST_BIN="$MOZ_LIB_DIR/firefox" MOZ_LANGPACKS_DIR="$MOZ_DIST_BIN/langpacks" MOZ_EXTENSIONS_PROFILE_DIR="$HOME/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" MOZ_PROGRAM="$MOZ_DIST_BIN/$MOZ_FIREFOX_FILE" -MOZ_LAUNCHER="$MOZ_DIST_BIN/run-mozilla.sh" GETENFORCE_FILE="/usr/sbin/getenforce" ## ## Enable Wayland backend? ## +%DISABLE_WAYLAND_PLACEHOLDER% + if ! [ $MOZ_DISABLE_WAYLAND ] && [ "$WAYLAND_DISPLAY" ]; then if [ "$XDG_CURRENT_DESKTOP" == "GNOME" ]; then export MOZ_ENABLE_WAYLAND=1 @@ -134,9 +135,9 @@ export FONTCONFIG_PATH export MOZ_GMP_PATH=$MOZ_LIB_DIR/mozilla/plugins/gmp-gmpopenh264/system-installed ## -## In order to better support certain scripts (such as Indic and some CJK -## scripts), Fedora builds its Firefox, with permission from the Mozilla -## Corporation, with the Pango system as its text renderer. This change +## In order to better support certain scripts (such as Indic and some CJK +## scripts), Fedora builds its Firefox, with permission from the Mozilla +## Corporation, with the Pango system as its text renderer. This change ## may negatively impact performance on some pages. To disable the use of ## Pango, set MOZ_DISABLE_PANGO=1 in your environment before launching ## Firefox. @@ -160,7 +161,7 @@ export G_SLICE=always-malloc ## ## Enable Xinput2 (mozbz#1207973) ## -export MOZ_USE_XINPUT2=${MOZ_USE_XINPUT2-1} +export MOZ_USE_XINPUT2=1 # OK, here's where all the real work gets done @@ -193,12 +194,12 @@ fi # When Firefox is not running, restore SELinux labels for profile files # (rhbz#1731371) if [ $MOZILLA_DOWN -ne 0 ]; then - if [ -x $GETENFORCE_FILE ] && [ `$GETENFORCE_FILE` != "Disabled" ]; then - (restorecon -vr ~/.mozilla/firefox/* &) + if [ -x $GETENFORCE_FILE ] && [ `$GETENFORCE_FILE` != "Disabled" ] && [ -d ~/.mozilla/firefox ]; then + (/usr/sbin/restorecon -vr ~/.mozilla/firefox &) fi fi -# Modify language pack configuration only when firefox is not running +# Modify language pack configuration only when firefox is not running # and language packs are not disabled if [ $MOZILLA_DOWN -ne 0 ]; then @@ -225,7 +226,7 @@ if [ $MOZILLA_DOWN -ne 0 ]; then local langpack=langpack-${language}@firefox.mozilla.org.xpi if [ -f $MOZ_LANGPACKS_DIR/$langpack ]; then rm -rf $MOZ_EXTENSIONS_PROFILE_DIR/$langpack - # If the target file is a symlink (the fallback langpack), + # If the target file is a symlink (the fallback langpack), # install the original file instead of the fallback one if [ -h $MOZ_LANGPACKS_DIR/$langpack ]; then langpack=`readlink $MOZ_LANGPACKS_DIR/$langpack` @@ -245,35 +246,6 @@ fi NSS_SSL_CBC_RANDOM_IV=${NSS_SSL_CBC_RANDOM_IV-1} export NSS_SSL_CBC_RANDOM_IV -# Prepare command line arguments -script_args="" -pass_arg_count=0 -while [ $# -gt $pass_arg_count ] -do - case "$1" in - -g | --debug) - script_args="$script_args -g" - debugging=1 - shift - ;; - -d | --debugger) - if [ $# -gt 1 ]; then - script_args="$script_args -d $2" - shift 2 - else - shift - fi - ;; - *) - # Move the unrecognized argument to the end of the list. - arg="$1" - shift - set -- "$@" "$arg" - pass_arg_count=`expr $pass_arg_count + 1` - ;; - esac -done - # Flatpak specific environment variables %FLATPAK_ENV_VARS% @@ -284,7 +256,7 @@ export MOZ_ALLOW_DOWNGRADE=1 debugging=0 if [ $debugging = 1 ] then - echo $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@" + echo $MOZ_PROGRAM "$@" fi -exec $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@" +exec $MOZ_PROGRAM "$@" diff --git a/firefox.spec b/firefox.spec index b36de37e73a2ba2f73aed41ccb837d245b9df83a..5dac8d92b9993960a4bb7d8c11fdbbb14ec7c930 100644 --- a/firefox.spec +++ b/firefox.spec @@ -1,139 +1,179 @@ -# NOTE: FOR UPGRADING FROM ANOLIS 8, PLEASE ALWAYS BUMPING RELEASE FROM 2 -%define anolis_release 1 -%global release_build 1 +%define homepage %(grep '^HOME_URL\s*=' /etc/os-release | sed 's/^HOME_URL\s*=//;s/^\s*"//;s/"\s*$//') +%global disable_toolsets 0 +# Produce debug (non-optimized) package build. Suitable for debugging only +# as the build is *very* slow. +%global debug_build 0 +# Run Mozilla test suite as a part of compile rpm section. Turn off when +# building locally and don't want to spend 24 hours waiting for results. %global run_firefox_tests 0 -%ifarch x86_64 + +%ifarch x86_64 %{ix86} %global run_firefox_tests 0 %endif -%global create_debuginfo 1 -%global debug_build 0 -%global use_xdg_file_portal 0 -%global system_nss 1 -%global system_libevent 1 -%global build_with_asan 0 -%global test_on_wayland 1 +%{lua: +function dist_to_rhel_minor(str, start) + match = string.match(str, ".module%+an8.%d+") + if match then + return string.sub(match, 13) + end + match = string.match(str, ".an8_%d+") + if match then + return string.sub(match, 6) + end + match = string.match(str, ".an8") + if match then + return 10 + end + match = string.match(str, ".module%+el9.%d+") + if match then + return string.sub(match, 13) + end + match = string.match(str, ".el9_%d+") + if match then + return string.sub(match, 6) + end + match = string.match(str, ".el9") + if match then + return 5 + end + match = string.match(str, ".el10_%d+") + if match then + return string.sub(match, 7) + end + match = string.match(str, ".el10") + if match then + return 0 + end + return -1 +end} -%if "%{toolchain}" == "clang" -%global build_with_clang 1 -%else -%global build_with_clang 0 -%endif +%global rhel_minor_version %{lua:print(dist_to_rhel_minor(rpm.expand("%dist")))} -%global enable_mozilla_crashreporter 0 -%ifarch x86_64 -%global enable_mozilla_crashreporter 0 -%endif -%if %{build_with_asan} -%global enable_mozilla_crashreporter 0 -%endif -%if !%{create_debuginfo} -%define _unpackaged_files_terminate_build 0 -%global debug_package %{nil} -%global enable_mozilla_crashreporter 0 -%endif +# System libraries options +%global system_nss 1 +%global bundle_nss 0 -%global system_ffi 1 -%global system_webp 1 -%global system_libvpx 1 -%global system_jpeg 1 -%global system_pixman 1 -%global use_bundled_cbindgen 1 -%if %{debug_build} -%global release_build 0 +%if 0%{?rhel} == 7 +%global bundle_nss 0 +%global system_nss 0 %endif -%global build_with_pgo 0 -%ifarch x86_64 -%if %{release_build} -%global build_with_pgo 0 +%if 0%{?rhel} == 8 + %if %{rhel_minor_version} < 8 + %global bundle_nss 1 + %global system_nss 1 + %endif %endif +%if 0%{?rhel} == 9 + %if %{rhel_minor_version} < 2 + %global bundle_nss 1 + %global system_nss 1 + %endif %endif -%if 0%{?build_with_pgo} -%global use_xvfb 1 -%global build_tests 1 +%global dts_version 11 +%global llvm_version 7.0 +%global nspr_version 4.35 +%global nspr_version_max 4.36 +%global nss_version 3.101 +%global nss_version_max 3.102 +%global rust_version 1.66 +%global system_libvpx 0 +# Workaround for missing httpd24 libs in rust +%if 0%{?rhel} == 7 +%global ___build_pre %{___build_pre}; source scl_source enable httpd24 || : %endif -%if 0%{?run_firefox_tests} -%global use_xvfb 1 -%global build_tests 1 -%endif +# Toolsets setup +%global use_dts 0 +%global use_gcc_ts 0 +%global use_nodejs_scl 0 +%global use_python3_scl 0 -%global launch_wayland_compositor 0 -%if %{build_with_pgo} && %{test_on_wayland} -%global launch_wayland_compositor 1 -%endif -%if %{run_firefox_tests} && %{test_on_wayland} -%global launch_wayland_compositor 1 +%global nodejs_build_req nodejs + +%if 0%{?rhel} > 7 && 0%{?rhel} < 10 +%global use_gcc_ts 1 %endif -%global default_bookmarks_file %{_datadir}/bookmarks/default-bookmarks.html -%global firefox_app_id \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\} -%global cairo_version 1.13.1 -%global freetype_version 2.1.9 -%global libnotify_version 0.7.0 -%if %{?system_libvpx} -%global libvpx_version 1.10.0 +%if 0%{?rhel} == 7 + %global use_dts 1 + %global use_nodejs_scl 1 + %global nodejs_build_req rh-nodejs10-nodejs + %global llvm_version 11.0 + %global use_python3_scl 1 %endif -%if %{?system_nss} -%global nspr_version 4.32 -%global nspr_build_version %{nspr_version} -%global nss_version 3.90 -%global nss_build_version %{nss_version} +%if 0%{?disable_toolsets} +%global use_dts 0 +%global use_nodejs_scl 0 +%global use_python3_scl 0 %endif -%global mozappdir %{_libdir}/firefox -%global mozappdirdev %{_libdir}/firefox-devel-%{version} -%global langpackdir %{mozappdir}/langpacks -%global tarballdir firefox-%{version} +%global launch_wayland_compositor 0 +%if 0%{?run_firefox_tests} + %global test_on_wayland 1 + %global launch_wayland_compositor 1 + %global build_tests 1 +%endif -%global official_branding 1 -%bcond_with langpacks +%global mozappdir %{_libdir}/firefox +%global langpackdir %{mozappdir}/browser/extensions +%define bundled_install_path %{mozappdir}/bundled +%global pre_version esr +# Workaround the dreaded "upstream source file changed content" rpminspect failure. +# If set to .b2 or .b3 ... the processed source file needs to be renamed before upload, e.g. +# firefox-102.8.0esr.b2.processed-source.tar.xz +# When unset use processed source file name as is. +##global buildnum .b2 -%if %{with langpacks} -%bcond_without langpacks_subpkg -%endif - -%if !%{release_build} -%global pre_tag .npgo -%endif -%if %{build_with_clang} -%global pre_tag .clang -%endif -%if %{build_with_asan} -%global pre_tag .asan -%global build_with_pgo 0 -%endif -%if !%{system_nss} -%global nss_tag .nss -%endif -%if %{debug_build} -%global pre_tag .debug -%endif +%bcond_without langpacks +# Exclude private libraries from autogenerated provides and requires %global __provides_exclude_from ^%{mozappdir} %global __requires_exclude ^(%%(find %{buildroot}%{mozappdir} -name '*.so' | xargs -n1 basename | sort -u | paste -s -d '|' -)) -%undefine _package_note_flags -%global _package_note_status 0 - Summary: Mozilla Firefox Web browser Name: firefox -Version: 115.13.0 -Release: %{anolis_release}%{?pre_tag}%{?dist} +Version: 128.3.1 +Release: 1%{?dist} URL: https://www.mozilla.org/firefox/ License: MPLv1.1 or GPLv2+ or LGPLv2+ -Source0: https://ftp.mozilla.org/pub/firefox/releases/%{version}esr/source/firefox-%{version}esr.source.tar.xz + +ExcludeArch: loongarch64 + +%if 0%{?rhel} >= 9 +ExcludeArch: %{ix86} +%endif +%if 0%{?rhel} == 8 + # Started to ship on aarch64 in RHEL 8.2, on s390x in RHEL 8.3 + %if %{rhel_minor_version} == 1 +ExcludeArch: %{ix86} s390x aarch64 + %else + %if %{rhel_minor_version} == 2 +ExcludeArch: %{ix86} s390x + %else +ExcludeArch: %{ix86} + %endif + %endif +%endif +%if 0%{?rhel} == 7 +ExcludeArch: aarch64 s390 ppc +%endif + +# We can't use the official tarball as it contains some test files that use +# licenses that are rejected by Red Hat Legal. +# The official tarball has to be always processed by the process-official-tarball +# script +# Link to original tarball: https://archive.mozilla.org/pub/firefox/releases/%%{version}%%{?pre_version}/source/firefox-%%{version}%%{?pre_version}.source.tar.xz +Source0: firefox-%{version}%{?pre_version}%{?buildnum}.processed-source.tar.xz %if %{with langpacks} -SOURCE1001: https://ftp.mozilla.org/pub/firefox/releases/%{version}esr/linux-x86_64/xpi/en-US.xpi -SOURCE1002: https://ftp.mozilla.org/pub/firefox/releases/%{version}esr/linux-x86_64/xpi/zh-CN.xpi -SOURCE1003: https://ftp.mozilla.org/pub/firefox/releases/%{version}esr/linux-x86_64/xpi/zh-TW.xpi +Source1: firefox-langpacks-%{version}%{?pre_version}-20241009.tar.xz %endif -# generate by gen_cbindgen-vendor.sh Source2: cbindgen-vendor.tar.xz +Source3: process-official-tarball Source10: firefox-mozconfig Source12: firefox-anolis-default-prefs.js Source20: firefox.desktop @@ -143,320 +183,1003 @@ Source24: mozilla-api-key Source25: firefox-symbolic.svg Source26: distribution.ini Source27: google-api-key -Source28: firefox-wayland.sh.in -Source29: firefox-wayland.desktop Source30: firefox-x11.sh.in Source31: firefox-x11.desktop Source32: node-stdout-nonblocking-wrapper Source33: firefox.appdata.xml.in Source34: firefox-search-provider.ini Source35: google-loc-api-key -#Source37: mochitest-python.tar.gz -Source38: print_results -Source39: print-errors -Source40: run-tests-x11 -Source41: run-tests-wayland -Source42: psummary -Source43: print_failures -Source44: print-error-reftest -Source45: run-wayland-compositor - -Patch40: build-aarch64-skia.patch -Patch44: build-arm-libopus.patch -Patch47: shebang-build.patch -Patch53: firefox-gcc-build.patch -Patch54: mozilla-1669639.patch -Patch71: 0001-GLIBCXX-fix-for-GCC-12.patch -Patch78: firefox-i686-build.patch -Patch79: firefox-gcc-13-build.patch - -Patch102: firefox-tests-xpcshell-freeze.patch - -Patch215: firefox-enable-addons.patch -Patch219: rhbz-1173156.patch -Patch226: rhbz-1354671.patch -Patch228: disable-openh264-download.patch -Patch229: firefox-nss-addon-hack.patch -Patch230: firefox-enable-vaapi.patch - -# upstream pacthes -Patch402: mozilla-1196777.patch -Patch407: mozilla-1667096.patch -# PGO/LTO patches -Patch600: pgo.patch -Patch603: firefox-gcc-always-inline.patch -# https://bugzilla.mozilla.org/show_bug.cgi?id=1474486 -Patch1200: firefox-112.0-commasplit.patch - -Patch1201: add-loongarch64-support-for-nix.patch -Patch1202: add-loongarch64-support-for-cty.patch -Patch1203: add-loongarch64-support-for-authenticator.patch -Patch1204: add-loongarch64-support-for-ipc.patch -Patch1205: add-loongarch64-support-for-libwebrtc.patch -Patch1206: backport-Bug-1782159-to-support-loongarch64.patch - -BuildRequires: pkgconfig(libpng) -BuildRequires: pkgconfig(gtk+-3.0) -BuildRequires: pkgconfig(krb5) -BuildRequires: pkgconfig(pango) -BuildRequires: pkgconfig(freetype2) >= %{freetype_version} -BuildRequires: pkgconfig(xt) -BuildRequires: pkgconfig(xrender) -BuildRequires: pkgconfig(libstartup-notification-1.0) -BuildRequires: pkgconfig(libnotify) >= %{libnotify_version} -BuildRequires: pkgconfig(dri) -BuildRequires: pkgconfig(libcurl) -BuildRequires: pkgconfig(alsa) -BuildRequires: pkgconfig(libpulse) -BuildRequires: pkgconfig(zlib) -BuildRequires: zip bzip2-devel dbus-glib-devel libproxy-devel -BuildRequires: autoconf yasm make -BuildRequires: llvm llvm-devel clang clang-libs clang-devel -BuildRequires: rust cargo -BuildRequires: nodejs -BuildRequires: nasm >= 1.13 -BuildRequires: fdk-aac-free-devel mesa-libgbm-devel pipewire-devel -BuildRequires: desktop-file-utils libappstream-glib pciutils-libs -BuildRequires: perl-interpreter -BuildRequires: python3-devel python3-setuptools - -%if %{?system_nss} +Source36: testing.sh +Source37: mochitest-python.tar.gz + +# Bundled libraries +Source401: nss-setup-flags-env.inc +Source402: nspr-4.35.0-1.el8_1.src.rpm +Source403: nss-3.101.0-7.el8_2.src.rpm +Source404: nss-3.101.0-7.el9_2.src.rpm + +# ---- RHEL specific patches --- +# -- Downstream only -- +Patch01: build-disable-elfhack.patch +Patch02: firefox-gcc-build.patch +Patch03: build-big-endian-errors.patch +Patch05: build-rhel7-lower-node-min-version.patch +Patch06: build-ppc64-abiv2.patch +Patch07: build-rhel7-nasm-dwarf.patch +# Disable PipeWire support for PipeWire 0.2 +Patch08: disable-pipewire.patch +Patch09: rhbz-2131158-webrtc-nss-fix.patch +Patch10: build-ffvpx.patch +Patch11: build-disable-gamepad.patch + +# -- Upstreamed patches -- +Patch51: mozilla-bmo1170092.patch + +# -- Submitted upstream, not merged -- +Patch101: mozilla-bmo1636168-fscreen.patch +Patch102: mozilla-bmo1670333.patch +# Big endian fix +Patch103: mozilla-bmo1504834-part1.patch +Patch104: mozilla-bmo1504834-part3.patch +# Big endian fix +Patch105: mozilla-bmo849632.patch +# Big endian fix +Patch106: mozilla-bmo998749.patch +# Big endian fix +Patch107: mozilla-bmo1716707-swizzle.patch +Patch108: mozilla-bmo1716707-svg.patch +Patch109: mozilla-bmo1789216-disable-av1.patch +Patch110: build-libaom.patch + +# ---- Fedora specific patches ---- +Patch151: firefox-enable-addons.patch +Patch152: rhbz-1173156.patch +Patch154: firefox-nss-addon-hack.patch +# ARM run-time patch +Patch155: rhbz-1354671.patch + +# ---- Test patches ---- +# Generate without context by +# GENDIFF_DIFF_ARGS=-U0 gendiff firefox-xxxx .firefox-tests-xpcshell +# GENDIFF_DIFF_ARGS=-U0 gendiff firefox-xxxx .firefox-tests-reftest + +# ---- Security patches ---- + +# BUILD REQURES/REQUIRES +%if %{?system_nss} && !0%{?bundle_nss} BuildRequires: pkgconfig(nspr) >= %{nspr_version} +BuildRequires: pkgconfig(nspr) < %{nspr_version_max} BuildRequires: pkgconfig(nss) >= %{nss_version} +BuildRequires: pkgconfig(nss) < %{nss_version_max} BuildRequires: nss-static >= %{nss_version} -%endif - -%if %{?system_jpeg} -BuildRequires: libjpeg-devel -%endif - -%if %{?system_pixman} -BuildRequires: pixman-devel -%endif - -%if %{?system_webp} -BuildRequires: pkgconfig(libwebp) >= 1.0.2 -BuildRequires: pkgconfig(libwebpdemux) >= 1.0.2 +BuildRequires: nss-static < %{nss_version_max} %endif %if %{?system_libvpx} -BuildRequires: pkgconfig(vpx) >= %{libvpx_version} -%endif - -%if %{build_with_clang} -BuildRequires: lld +BuildRequires: libvpx-devel >= 1.8.2 %endif -%if !0%{?use_bundled_cbindgen} -BuildRequires: cbindgen -%endif - -%if %{?system_ffi} +BuildRequires: bzip2-devel +BuildRequires: desktop-file-utils +BuildRequires: libappstream-glib +BuildRequires: libjpeg-devel +BuildRequires: libstdc++-devel +BuildRequires: libstdc++-static +BuildRequires: m4 +BuildRequires: make +BuildRequires: nasm >= 1.13 +BuildRequires: %{nodejs_build_req} >= 10.21 +BuildRequires: pciutils-libs +BuildRequires: perl-interpreter +BuildRequires: pkgconfig(alsa) +BuildRequires: pkgconfig(dri) +BuildRequires: pkgconfig(freetype2) +BuildRequires: pkgconfig(gtk+-3.0) +BuildRequires: pkgconfig(krb5) +BuildRequires: pkgconfig(libcurl) BuildRequires: pkgconfig(libffi) -%endif - -%if 0%{?use_xvfb} -BuildRequires: xorg-x11-server-Xvfb -%endif +BuildRequires: pkgconfig(libnotify) +BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(libpulse) +BuildRequires: pkgconfig(libstartup-notification-1.0) +BuildRequires: pkgconfig(pango) +BuildRequires: pkgconfig(xrender) +BuildRequires: pkgconfig(xt) +BuildRequires: pkgconfig(xtst) +BuildRequires: pkgconfig(zlib) +BuildRequires: zip -%if %{build_with_asan} -BuildRequires: libasan libasan-static +%if 0%{?rhel} == 7 +%if 0%{?use_python3_scl} +BuildRequires: rh-python38-python-devel +BuildRequires: rh-python38-python-setuptools +BuildRequires: scl-utils %endif +BuildRequires: findutils +%else +BuildRequires: pipewire-devel +%endif + +%if 0%{?rhel} == 8 +BuildRequires: cargo +BuildRequires: clang-libs >= %{llvm_version} +BuildRequires: clang-devel >= %{llvm_version} +BuildRequires: clang >= %{llvm_version} +BuildRequires: llvm-devel >= %{llvm_version} +BuildRequires: llvm >= %{llvm_version} + %if 0%{?disable_toolsets} == 0 +BuildRequires: python38-devel +BuildRequires: python38-setuptools + %endif +BuildRequires: rustfmt >= %{rust_version} +BuildRequires: rust >= %{rust_version} +%endif + +%if 0%{?rhel} >= 9 +BuildRequires: cargo +BuildRequires: clang clang-libs llvm llvm-devel +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: rust +%endif + +%if 0%{?rhel} == 7 +BuildRequires: cargo +BuildRequires: clang clang-libs llvm llvm-devel +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: rust +BuildRequires: httpd24-curl +%endif + +%if 0%{?use_dts} +BuildRequires: devtoolset-%{dts_version}-gcc +BuildRequires: devtoolset-%{dts_version}-gcc-c++ +BuildRequires: devtoolset-%{dts_version}-libatomic-devel +%endif + +# Bundled nss/nspr requirement +%if 0%{?bundle_nss} +BuildRequires: gawk +BuildRequires: gcc-c++ +BuildRequires: nss-softokn +BuildRequires: perl-interpreter +BuildRequires: pkgconfig +BuildRequires: psmisc +BuildRequires: sqlite-devel +BuildRequires: xmlto +BuildRequires: zlib-devel +%endif + +#%if !0%{?flatpak} +#TODO +#BuildRequires: system-bookmarks +#%endif %if 0%{?test_on_wayland} -BuildRequires: mutter -BuildRequires: gsettings-desktop-schemas +BuildRequires: dbus-x11 +BuildRequires: gnome-keyring BuildRequires: gnome-settings-daemon +BuildRequires: gsettings-desktop-schemas BuildRequires: mesa-dri-drivers +BuildRequires: mutter BuildRequires: xorg-x11-server-Xwayland -BuildRequires: dbus-x11 -BuildRequires: gnome-keyring %endif %if 0%{?run_firefox_tests} -BuildRequires: procps-ng -BuildRequires: nss-tools -BuildRequires: python2.7 -BuildRequires: dejavu-sans-mono-fonts +BuildRequires: abattis-cantarell-fonts +BuildRequires: dbus-x11 BuildRequires: dejavu-sans-fonts +BuildRequires: dejavu-sans-mono-fonts BuildRequires: dejavu-serif-fonts -BuildRequires: dbus-x11 BuildRequires: gnome-keyring -BuildRequires: mesa-dri-drivers -BuildRequires: liberation-fonts-common -BuildRequires: liberation-mono-fonts -BuildRequires: liberation-sans-fonts -BuildRequires: liberation-serif-fonts BuildRequires: google-carlito-fonts BuildRequires: google-droid-sans-fonts -BuildRequires: google-noto-fonts-common BuildRequires: google-noto-cjk-fonts-common +BuildRequires: google-noto-emoji-color-fonts +BuildRequires: google-noto-fonts-common BuildRequires: google-noto-sans-cjk-ttc-fonts -BuildRequires: google-noto-sans-gurmukhi-fonts BuildRequires: google-noto-sans-fonts -BuildRequires: google-noto-emoji-color-fonts +BuildRequires: google-noto-sans-gurmukhi-fonts BuildRequires: google-noto-sans-sinhala-vf-fonts -BuildRequires: thai-scalable-fonts-common -BuildRequires: thai-scalable-waree-fonts -BuildRequires: khmeros-base-fonts BuildRequires: jomolhari-fonts +BuildRequires: khmeros-base-fonts +BuildRequires: liberation-fonts-common +BuildRequires: liberation-mono-fonts +BuildRequires: liberation-sans-fonts +BuildRequires: liberation-serif-fonts BuildRequires: lohit-tamil-fonts BuildRequires: lohit-telugu-fonts +BuildRequires: mesa-dri-drivers +BuildRequires: nss-tools BuildRequires: paktype-naskh-basic-fonts +BuildRequires: procps-ng BuildRequires: pt-sans-fonts -BuildRequires: smc-meera-fonts +#BuildRequires: smc-meera-fonts BuildRequires: stix-fonts -BuildRequires: abattis-cantarell-fonts +BuildRequires: thai-scalable-fonts-common +BuildRequires: thai-scalable-waree-fonts BuildRequires: xorg-x11-fonts-ISO8859-1-100dpi BuildRequires: xorg-x11-fonts-misc +BuildRequires: xorg-x11-server-Xvfb %endif -%if %{?system_libevent} -BuildRequires: pkgconfig(libevent) -%endif -%ifarch loongarch64 -BuildRequires: cargo-vendored-libc +%if 0%{?use_gcc_ts} +BuildRequires: gcc-toolset-13-runtime +BuildRequires: gcc-toolset-13-binutils +BuildRequires: gcc-toolset-13-gcc +BuildRequires: gcc-toolset-13-gcc-c++ +BuildRequires: gcc-toolset-13-gcc-plugin-annobin %endif Requires: mozilla-filesystem Requires: p11-kit-trust Requires: pciutils-libs -Requires: u2f-hidraw-policy -Recommends: mozilla-openh264 >= 2.1.1 -Recommends: libva -%if %{?system_nss} -Requires: nspr >= %{nspr_build_version} -Requires: nss >= %{nss_build_version} -%endif -%if %{?use_xdg_file_portal} -Requires: xdg-desktop-portal -%endif -%if %{with langpacks_subpkg} -Recommends: firefox-langpacks = %{version}-%{release} -%else -Obsoletes: firefox-langpacks < %{version}-%{release} +Requires: redhat-indexhtml + +%if %{?system_nss} && !0%{?bundle_nss} +Requires: nspr >= %{nspr_version} +Requires: nss >= %{nss_version} %endif + Obsoletes: mozilla <= 37:1.7.13 Provides: webclient +# Bundled libraries +#Provides: bundled(libjxl) it's used only on nightly builds +Provides: bundled(angle) +Provides: bundled(aom) +Provides: bundled(audioipc-2) +Provides: bundled(bergamot-translator) +Provides: bundled(brotli) +Provides: bundled(bsdiff) +Provides: bundled(bspatch) +Provides: bundled(cairo) +Provides: bundled(cfworker) +Provides: bundled(cld2) +Provides: bundled(content) +Provides: bundled(content_analysis_sdk) +Provides: bundled(cubeb) +Provides: bundled(cups) +Provides: bundled(d3) +Provides: bundled(d3.js) +Provides: bundled(double-conversion) +Provides: bundled(drm) +Provides: bundled(expat) +Provides: bundled(fastText) +Provides: bundled(fathom) +Provides: bundled(fdlibm) +Provides: bundled(ffvpx) +Provides: bundled(freetype2) +Provides: bundled(function2) +Provides: bundled(gbm) +Provides: bundled(gemmology) +Provides: bundled(googletest) +Provides: bundled(graphite2) +Provides: bundled(harfbuzz) +Provides: bundled(highway) +Provides: bundled(hunspell) +Provides: bundled(intgemm) +Provides: bundled(irregexp) +Provides: bundled(jpeg-xl) +Provides: bundled(kissfft) +Provides: bundled(libaom) +Provides: bundled(libcubeb) +Provides: bundled(libdav1d) +Provides: bundled(libdrm) +Provides: bundled(libepoxy) +Provides: bundled(libfuzzer) +Provides: bundled(libgbm) +Provides: bundled(libjpeg) +Provides: bundled(libjxl) +Provides: bundled(libmar) +Provides: bundled(libmkv) +Provides: bundled(libnestegg) +Provides: bundled(libogg) +Provides: bundled(libopus) +Provides: bundled(libpng) +Provides: bundled(libprio) +Provides: bundled(libsoundtouch) +Provides: bundled(libspeex_resampler) +Provides: bundled(libsrtp) +Provides: bundled(libtheora) +Provides: bundled(libtremor) +Provides: bundled(libvorbis) +Provides: bundled(libvpx) +Provides: bundled(libwebp) +Provides: bundled(libwebrtc) +Provides: bundled(libyuv) +Provides: bundled(lit) +Provides: bundled(MotionMark) +Provides: bundled(mp4parse-rust) +Provides: bundled(msgpack) +Provides: bundled(msgpack-c) +Provides: bundled(mtransport) +Provides: bundled(nestegg) +Provides: bundled(nICEr) +Provides: bundled(nimbus) +Provides: bundled(openmax_dl) +Provides: bundled(openmax_il) +Provides: bundled(openvr) +Provides: bundled(ots) +Provides: bundled(pdf.js) +Provides: bundled(pdfjs) +Provides: bundled(perfetto) +Provides: bundled(picosha2) +Provides: bundled(PKI) +Provides: bundled(PKI.js) +Provides: bundled(puppeteer) +Provides: bundled(pywebsocket3) +Provides: bundled(qcms) +Provides: bundled(reader) +Provides: bundled(rlbox) +Provides: bundled(rlbox_sandboxing_api) +Provides: bundled(rlbox_wasm2c_sandbox) +Provides: bundled(schemas) +Provides: bundled(sfntly) +Provides: bundled(simde) +Provides: bundled(sipcc) +Provides: bundled(skia) +Provides: bundled(soundtouch) +Provides: bundled(source-map) +Provides: bundled(Speedometer3) +Provides: bundled(sqlite3) +Provides: bundled(src) +Provides: bundled(thebes) +Provides: bundled(theora) +Provides: bundled(usrsctp) +Provides: bundled(vendor) +Provides: bundled(vsdownload) +Provides: bundled(wabt) +Provides: bundled(wasm2c) +Provides: bundled(wasm2c_sandbox_compiler) +Provides: bundled(webaudio) +Provides: bundled(webgl-conf) +Provides: bundled(WebRender) +Provides: bundled(wgpu) +Provides: bundled(wgpu_bindings) +Provides: bundled(woff2) +Provides: bundled(xsimd) +Provides: bundled(xz-embedded) +Provides: bundled(ycbcr) +Provides: bundled(zlib) +Provides: bundled(zstd) +Provides: bundled(Zycore) +Provides: bundled(Zydis) + +%if 0%{?bundle_nss} +Provides: bundled(nss) = %{nss_version} +Provides: bundled(nspr) = %{nspr_version} +%endif + +# Rust third parties: +# List obtained by `get_rust_bundled_provides.sh build.log` script:: +Provides: bundled(crate(aa-stroke)) = 0.1.0 +Provides: bundled(crate(adler)) = 1.0.2 +Provides: bundled(crate(ahash)) = 0.8.11 +Provides: bundled(crate(aho-corasick)) = 1.1.0 +Provides: bundled(crate(alsa)) = 0.8.1 +Provides: bundled(crate(alsa-sys)) = 0.3.1 +Provides: bundled(crate(anyhow)) = 1.0.69 +Provides: bundled(crate(app_services_logger)) = 0.1.0 +Provides: bundled(crate(app_units)) = 0.7.3 +Provides: bundled(crate(arrayref)) = 0.3.6 +Provides: bundled(crate(arrayvec)) = 0.7.2 +Provides: bundled(crate(ash)) = 0.38.0+1.3.281 +Provides: bundled(crate(askama)) = 0.12.0 +Provides: bundled(crate(askama_derive)) = 0.12.1 +Provides: bundled(crate(askama_escape)) = 0.10.3 +Provides: bundled(crate(async-task)) = 4.3.0 +Provides: bundled(crate(async-trait)) = 0.1.68 +Provides: bundled(crate(atomic_refcell)) = 0.1.9 +Provides: bundled(crate(atty)) = 0.2.14 +Provides: bundled(crate(audioipc2)) = 0.6.0 +Provides: bundled(crate(audioipc2-client)) = 0.6.0 +Provides: bundled(crate(audioipc2-server)) = 0.6.0 +Provides: bundled(crate(audio_thread_priority)) = 0.32.0 +Provides: bundled(crate(authenticator)) = 0.4.0-alpha.24 +Provides: bundled(crate(authrs_bridge)) = 0.1.0 +Provides: bundled(crate(autocfg)) = 1.1.0 +Provides: bundled(crate(autocfg)) = 1.1.0 +Provides: bundled(crate(base64)) = 0.21.3 +Provides: bundled(crate(basic-toml)) = 0.1.2 +Provides: bundled(crate(bhttp)) = 0.3.1 +Provides: bundled(crate(binary_http)) = 0.1.0 +Provides: bundled(crate(bincode)) = 1.3.3 +Provides: bundled(crate(bindgen)) = 0.63.999 +Provides: bundled(crate(bindgen)) = 0.69.4 +Provides: bundled(crate(bitflags)) = 1.3.2 +Provides: bundled(crate(bitflags)) = 1.999.999 +Provides: bundled(crate(bitflags)) = 2.5.0 +Provides: bundled(crate(bitreader)) = 0.3.6 +Provides: bundled(crate(bit-set)) = 0.5.3 +Provides: bundled(crate(bit-vec)) = 0.6.3 +Provides: bundled(crate(block-buffer)) = 0.10.3 +Provides: bundled(crate(bookmark_sync)) = 0.1.0 +Provides: bundled(crate(buildid_reader)) = 0.1.0 +Provides: bundled(crate(build-parallel)) = 0.1.2 +Provides: bundled(crate(builtins-static)) = 0.1.0 +Provides: bundled(crate(bumpalo)) = 3.15.4 +Provides: bundled(crate(byteorder)) = 1.5.0 +Provides: bundled(crate(bytes)) = 1.4.0 +Provides: bundled(crate(cache-padded)) = 1.2.0 +Provides: bundled(crate(camino)) = 1.1.2 +Provides: bundled(crate(cargo_metadata)) = 0.15.3 +Provides: bundled(crate(cargo-platform)) = 0.1.2 +Provides: bundled(crate(cascade_bloom_filter)) = 0.1.0 +Provides: bundled(crate(cbindgen)) = 0.26.0 +Provides: bundled(crate(cc)) = 1.0.89 +Provides: bundled(crate(cert_storage)) = 0.0.1 +Provides: bundled(crate(cexpr)) = 0.6.0 +Provides: bundled(crate(cfg_aliases)) = 0.1.1 +Provides: bundled(crate(cfg-if)) = 1.0.0 +Provides: bundled(crate(chardetng)) = 0.1.9 +Provides: bundled(crate(chardetng_c)) = 0.1.2 +Provides: bundled(crate(chrono)) = 0.4.19 +Provides: bundled(crate(chunky-vec)) = 0.1.0 +Provides: bundled(crate(clang-sys)) = 1.7.0 +Provides: bundled(crate(clap)) = 3.2.25 +Provides: bundled(crate(clap_lex)) = 0.2.4 +Provides: bundled(crate(cmake)) = 0.1.999 +Provides: bundled(crate(codespan-reporting)) = 0.11.1 +Provides: bundled(crate(core_maths)) = 0.1.0 +Provides: bundled(crate(cose)) = 0.1.4 +Provides: bundled(crate(cose-c)) = 0.1.5 +Provides: bundled(crate(cpufeatures)) = 0.2.8 +Provides: bundled(crate(crc32fast)) = 1.3.2 +Provides: bundled(crate(crossbeam-channel)) = 0.5.6 +Provides: bundled(crate(crossbeam-deque)) = 0.8.2 +Provides: bundled(crate(crossbeam-epoch)) = 0.9.14 +Provides: bundled(crate(crossbeam-queue)) = 0.3.8 +Provides: bundled(crate(crossbeam-utils)) = 0.8.14 +Provides: bundled(crate(crypto-common)) = 0.1.6 +Provides: bundled(crate(crypto_hash)) = 0.1.0 +Provides: bundled(crate(cssparser)) = 0.34.0 +Provides: bundled(crate(cssparser-macros)) = 0.6.1 +Provides: bundled(crate(cstr)) = 0.2.11 +Provides: bundled(crate(cubeb)) = 0.13.0 +Provides: bundled(crate(cubeb-backend)) = 0.13.0 +Provides: bundled(crate(cubeb-core)) = 0.13.0 +Provides: bundled(crate(cubeb-pulse)) = 0.5.0 +Provides: bundled(crate(cubeb-sys)) = 0.13.0 +Provides: bundled(crate(dap_ffi)) = 0.1.0 +Provides: bundled(crate(darling)) = 0.20.1 +Provides: bundled(crate(darling_core)) = 0.20.1 +Provides: bundled(crate(darling_macro)) = 0.20.1 +Provides: bundled(crate(data-encoding)) = 2.3.3 +Provides: bundled(crate(data-encoding-ffi)) = 0.1.0 +Provides: bundled(crate(data_storage)) = 0.0.1 +Provides: bundled(crate(dbus)) = 0.6.5 +Provides: bundled(crate(deranged)) = 0.3.11 +Provides: bundled(crate(derive_common)) = 0.0.1 +Provides: bundled(crate(derive_more)) = 0.99.999 +Provides: bundled(crate(derive_more)) = 1.0.0-beta.2 +Provides: bundled(crate(derive_more-impl)) = 1.0.0-beta.2 +Provides: bundled(crate(digest)) = 0.10.6 +Provides: bundled(crate(diplomat)) = 0.7.0 +Provides: bundled(crate(diplomat_core)) = 0.7.0 +Provides: bundled(crate(diplomat-runtime)) = 0.7.0 +Provides: bundled(crate(dirs)) = 4.0.0 +Provides: bundled(crate(dirs-sys)) = 0.3.7 +Provides: bundled(crate(displaydoc)) = 0.2.4 +Provides: bundled(crate(dns-parser)) = 0.8.0 +Provides: bundled(crate(document-features)) = 0.2.8 +Provides: bundled(crate(dogear)) = 0.5.0 +Provides: bundled(crate(dom)) = 0.1.0 +Provides: bundled(crate(dom_fragmentdirectives)) = 0.1.0 +Provides: bundled(crate(dtoa)) = 0.4.8 +Provides: bundled(crate(dtoa-short)) = 0.3.3 +Provides: bundled(crate(either)) = 1.8.1 +Provides: bundled(crate(encoding_c)) = 0.9.8 +Provides: bundled(crate(encoding_c_mem)) = 0.2.6 +Provides: bundled(crate(encoding_glue)) = 0.1.0 +Provides: bundled(crate(encoding_rs)) = 0.8.34 +Provides: bundled(crate(enum-map)) = 2.7.3 +Provides: bundled(crate(enum-map-derive)) = 0.17.0 +Provides: bundled(crate(enumset)) = 1.1.2 +Provides: bundled(crate(enumset_derive)) = 0.8.1 +Provides: bundled(crate(env_logger)) = 0.10.0 +Provides: bundled(crate(equivalent)) = 1.0.1 +Provides: bundled(crate(error-chain)) = 0.12.4 +Provides: bundled(crate(error-support)) = 0.1.0 +Provides: bundled(crate(error-support-macros)) = 0.1.0 +Provides: bundled(crate(etagere)) = 0.2.7 +Provides: bundled(crate(euclid)) = 0.22.10 +Provides: bundled(crate(fallible_collections)) = 0.4.9 +Provides: bundled(crate(fallible-iterator)) = 0.3.0 +Provides: bundled(crate(fallible-streaming-iterator)) = 0.1.9 +Provides: bundled(crate(fastrand)) = 1.9.0 +Provides: bundled(crate(fastrand)) = 2.0.0 +Provides: bundled(crate(ffi-support)) = 0.4.4 +Provides: bundled(crate(firefox-on-glean)) = 0.1.0 +Provides: bundled(crate(flate2)) = 1.0.26 +Provides: bundled(crate(fluent)) = 0.16.0 +Provides: bundled(crate(fluent-bundle)) = 0.15.2 +Provides: bundled(crate(fluent-fallback)) = 0.7.0 +Provides: bundled(crate(fluent-ffi)) = 0.1.0 +Provides: bundled(crate(fluent-langneg)) = 0.13.0 +Provides: bundled(crate(fluent-langneg-ffi)) = 0.1.0 +Provides: bundled(crate(fluent-pseudo)) = 0.3.1 +Provides: bundled(crate(fluent-syntax)) = 0.11.0 +Provides: bundled(crate(fnv)) = 1.0.7 +Provides: bundled(crate(fog_control)) = 0.1.0 +Provides: bundled(crate(form_urlencoded)) = 1.2.1 +Provides: bundled(crate(freetype)) = 0.7.0 +Provides: bundled(crate(fs-err)) = 2.9.0 +Provides: bundled(crate(futures)) = 0.3.28 +Provides: bundled(crate(futures-channel)) = 0.3.28 +Provides: bundled(crate(futures-core)) = 0.3.28 +Provides: bundled(crate(futures-executor)) = 0.3.28 +Provides: bundled(crate(futures-io)) = 0.3.28 +Provides: bundled(crate(futures-macro)) = 0.3.28 +Provides: bundled(crate(futures-sink)) = 0.3.28 +Provides: bundled(crate(futures-task)) = 0.3.28 +Provides: bundled(crate(futures-util)) = 0.3.28 +Provides: bundled(crate(fxhash)) = 0.2.1 +Provides: bundled(crate(gecko_logger)) = 0.1.0 +Provides: bundled(crate(gecko-profiler)) = 0.1.0 +Provides: bundled(crate(geckoservo)) = 0.0.1 +Provides: bundled(crate(generic-array)) = 0.14.6 +Provides: bundled(crate(getrandom)) = 0.2.14 +Provides: bundled(crate(gkrust)) = 0.1.0 +Provides: bundled(crate(gkrust-shared)) = 0.1.0 +Provides: bundled(crate(gkrust_utils)) = 0.1.0 +Provides: bundled(crate(gleam)) = 0.15.0 +Provides: bundled(crate(glean)) = 60.1.1 +Provides: bundled(crate(glean-core)) = 60.1.1 +Provides: bundled(crate(gl_generator)) = 0.14.0 +Provides: bundled(crate(glob)) = 0.3.1 +Provides: bundled(crate(glsl)) = 6.0.2 +Provides: bundled(crate(glslopt)) = 0.1.10 +Provides: bundled(crate(glsl-to-cxx)) = 0.1.0 +Provides: bundled(crate(goblin)) = 0.8.1 +Provides: bundled(crate(golden_gate)) = 0.1.0 +Provides: bundled(crate(gpu-alloc)) = 0.6.0 +Provides: bundled(crate(gpu-alloc-types)) = 0.3.0 +Provides: bundled(crate(gpu-descriptor)) = 0.3.0 +Provides: bundled(crate(gpu-descriptor-types)) = 0.2.0 +Provides: bundled(crate(half)) = 1.8.2 +Provides: bundled(crate(hashbrown)) = 0.12.3 +Provides: bundled(crate(hashbrown)) = 0.13.999 +Provides: bundled(crate(hashbrown)) = 0.14.5 +Provides: bundled(crate(hashlink)) = 0.9.1 +Provides: bundled(crate(heck)) = 0.4.1 +Provides: bundled(crate(hex)) = 0.4.3 +Provides: bundled(crate(hexf-parse)) = 0.2.1 +Provides: bundled(crate(http_sfv)) = 0.1.0 +Provides: bundled(crate(icu_capi)) = 1.4.0 +Provides: bundled(crate(icu_collections)) = 1.4.0 +Provides: bundled(crate(icu_locid)) = 1.4.0 +Provides: bundled(crate(icu_locid_transform)) = 1.4.0 +Provides: bundled(crate(icu_locid_transform_data)) = 1.4.0 +Provides: bundled(crate(icu_properties)) = 1.4.0 +Provides: bundled(crate(icu_properties_data)) = 1.4.0 +Provides: bundled(crate(icu_provider)) = 1.4.0 +Provides: bundled(crate(icu_provider_adapters)) = 1.4.0 +Provides: bundled(crate(icu_provider_macros)) = 1.4.0 +Provides: bundled(crate(icu_segmenter)) = 1.4.0 +Provides: bundled(crate(icu_segmenter_data)) = 1.4.0 +Provides: bundled(crate(id-arena)) = 2.2.1 +Provides: bundled(crate(ident_case)) = 1.0.1 +Provides: bundled(crate(idna)) = 0.5.0 +Provides: bundled(crate(indexmap)) = 1.9.3 +Provides: bundled(crate(indexmap)) = 2.2.6 +Provides: bundled(crate(inherent)) = 1.0.7 +Provides: bundled(crate(interrupt-support)) = 0.1.0 +Provides: bundled(crate(intl-memoizer)) = 0.5.1 +Provides: bundled(crate(intl_pluralrules)) = 7.0.2 +Provides: bundled(crate(io-lifetimes)) = 1.0.10 +Provides: bundled(crate(iovec)) = 0.1.4 +Provides: bundled(crate(ipcclientcerts-static)) = 0.1.0 +Provides: bundled(crate(itertools)) = 0.10.5 +Provides: bundled(crate(itoa)) = 1.0.5 +Provides: bundled(crate(itoa)) = 1.0.6 +Provides: bundled(crate(jobserver)) = 0.1.25 +Provides: bundled(crate(jog)) = 0.1.0 +Provides: bundled(crate(jsrust)) = 0.1.0 +Provides: bundled(crate(jsrust_shared)) = 0.1.0 +Provides: bundled(crate(keccak)) = 0.1.4 +Provides: bundled(crate(khronos_api)) = 3.1.0 +Provides: bundled(crate(kvstore)) = 0.1.0 +Provides: bundled(crate(l10nregistry)) = 0.3.0 +Provides: bundled(crate(l10nregistry-ffi)) = 0.1.0 +Provides: bundled(crate(lazycell)) = 1.3.0 +Provides: bundled(crate(lazy_static)) = 1.4.0 +Provides: bundled(crate(leb128)) = 0.2.5 +Provides: bundled(crate(libc)) = 0.2.144 +Provides: bundled(crate(libc)) = 0.2.153 +Provides: bundled(crate(libdbus-sys)) = 0.2.2 +Provides: bundled(crate(libloading)) = 0.8.3 +Provides: bundled(crate(libm)) = 0.2.6 +Provides: bundled(crate(libsqlite3-sys)) = 0.28.0 +Provides: bundled(crate(libudev)) = 0.2.0 +Provides: bundled(crate(libudev-sys)) = 0.1.3 +Provides: bundled(crate(linux-raw-sys)) = 0.3.7 +Provides: bundled(crate(linux-raw-sys)) = 0.4.12 +Provides: bundled(crate(litemap)) = 0.7.2 +Provides: bundled(crate(litrs)) = 0.4.1 +Provides: bundled(crate(lmdb-rkv)) = 0.14.0 +Provides: bundled(crate(lmdb-rkv-sys)) = 0.11.2 +Provides: bundled(crate(localization-ffi)) = 0.1.0 +Provides: bundled(crate(lock_api)) = 0.4.9 +Provides: bundled(crate(log)) = 0.4.17 +Provides: bundled(crate(log)) = 0.4.20 +Provides: bundled(crate(malloc_size_of)) = 0.0.1 +Provides: bundled(crate(malloc_size_of_derive)) = 0.1.3 +Provides: bundled(crate(mapped_hyph)) = 0.4.3 +Provides: bundled(crate(matches)) = 0.1.10 +Provides: bundled(crate(md-5)) = 0.10.5 +Provides: bundled(crate(mdns_service)) = 0.1.1 +Provides: bundled(crate(memalloc)) = 0.1.0 +Provides: bundled(crate(memchr)) = 2.5.0 +Provides: bundled(crate(memmap2)) = 0.5.999 +Provides: bundled(crate(memmap2)) = 0.8.999 +Provides: bundled(crate(memmap2)) = 0.9.3 +Provides: bundled(crate(memoffset)) = 0.8.999 +Provides: bundled(crate(memoffset)) = 0.9.0 +Provides: bundled(crate(midir)) = 0.7.0 +Provides: bundled(crate(midir_impl)) = 0.1.0 +Provides: bundled(crate(mime)) = 0.3.16 +Provides: bundled(crate(mime_guess)) = 2.0.4 +Provides: bundled(crate(mime-guess-ffi)) = 0.1.0 +Provides: bundled(crate(minimal-lexical)) = 0.2.1 +Provides: bundled(crate(miniz_oxide)) = 0.7.1 +Provides: bundled(crate(mio)) = 0.8.8 +Provides: bundled(crate(moz_asserts)) = 0.1.0 +Provides: bundled(crate(mozbuild)) = 0.1.0 +Provides: bundled(crate(moz_cbor)) = 0.1.2 +Provides: bundled(crate(mozglue-static)) = 0.1.0 +Provides: bundled(crate(mozilla-central-workspace-hack)) = 0.1.0 +Provides: bundled(crate(moz_task)) = 0.1.0 +Provides: bundled(crate(mozurl)) = 0.0.1 +Provides: bundled(crate(mp4parse)) = 0.17.0 +Provides: bundled(crate(mp4parse_capi)) = 0.17.0 +Provides: bundled(crate(murmurhash3)) = 0.0.5 +Provides: bundled(crate(naga)) = 0.20.0 +Provides: bundled(crate(neqo-common)) = 0.7.9 +Provides: bundled(crate(neqo-crypto)) = 0.7.9 +Provides: bundled(crate(neqo_glue)) = 0.1.0 +Provides: bundled(crate(neqo-http3)) = 0.7.9 +Provides: bundled(crate(neqo-qpack)) = 0.7.9 +Provides: bundled(crate(neqo-transport)) = 0.7.9 +Provides: bundled(crate(netwerk_helper)) = 0.0.1 +Provides: bundled(crate(new_debug_unreachable)) = 1.0.4 +Provides: bundled(crate(nix)) = 0.26.99 +Provides: bundled(crate(nix)) = 0.28.0 +Provides: bundled(crate(nom)) = 7.1.3 +Provides: bundled(crate(nserror)) = 0.1.0 +Provides: bundled(crate(nss_build_common)) = 0.1.0 +Provides: bundled(crate(nss-gk-api)) = 0.3.0 +Provides: bundled(crate(nsstring)) = 0.1.0 +Provides: bundled(crate(num-conv)) = 0.1.0 +Provides: bundled(crate(num_cpus)) = 1.15.0 +Provides: bundled(crate(num-derive)) = 0.4.2 +Provides: bundled(crate(num-integer)) = 0.1.45 +Provides: bundled(crate(num-traits)) = 0.2.15 +Provides: bundled(crate(object)) = 0.32.0 +Provides: bundled(crate(oblivious_http)) = 0.1.0 +Provides: bundled(crate(ohttp)) = 0.3.1 +Provides: bundled(crate(once_cell)) = 1.19.0 +Provides: bundled(crate(oneshot-uniffi)) = 0.1.6 +Provides: bundled(crate(ordered-float)) = 3.4.0 +Provides: bundled(crate(origin-trials-ffi)) = 0.1.0 +Provides: bundled(crate(origin-trial-token)) = 0.1.1 +Provides: bundled(crate(os_str_bytes)) = 6.5.0 +Provides: bundled(crate(oxilangtag)) = 0.1.3 +Provides: bundled(crate(oxilangtag-ffi)) = 0.1.0 +Provides: bundled(crate(parking_lot)) = 0.12.1 +Provides: bundled(crate(parking_lot_core)) = 0.9.9 +Provides: bundled(crate(paste)) = 1.0.11 +Provides: bundled(crate(peek-poke)) = 0.3.0 +Provides: bundled(crate(peek-poke-derive)) = 0.3.0 +Provides: bundled(crate(percent-encoding)) = 2.3.1 +Provides: bundled(crate(phf)) = 0.11.2 +Provides: bundled(crate(phf_codegen)) = 0.11.2 +Provides: bundled(crate(phf_generator)) = 0.11.2 +Provides: bundled(crate(phf_macros)) = 0.11.2 +Provides: bundled(crate(phf_shared)) = 0.11.2 +Provides: bundled(crate(pin-project-lite)) = 0.2.9 +Provides: bundled(crate(pin-utils)) = 0.1.0 +Provides: bundled(crate(pkcs11-bindings)) = 0.1.5 +Provides: bundled(crate(pkg-config)) = 0.3.26 +Provides: bundled(crate(plain)) = 0.2.3 +Provides: bundled(crate(plane-split)) = 0.18.0 +Provides: bundled(crate(powerfmt)) = 0.2.0 +Provides: bundled(crate(ppv-lite86)) = 0.2.17 +Provides: bundled(crate(precomputed-hash)) = 0.1.1 +Provides: bundled(crate(prefs_parser)) = 0.0.1 +Provides: bundled(crate(prio)) = 0.16.2 +Provides: bundled(crate(processtools)) = 0.1.0 +Provides: bundled(crate(proc-macro2)) = 1.0.74 +Provides: bundled(crate(proc-macro2)) = 1.0.85 +Provides: bundled(crate(profiler_helper)) = 0.1.0 +Provides: bundled(crate(profiler-macros)) = 0.1.0 +Provides: bundled(crate(profiling)) = 1.0.7 +Provides: bundled(crate(prost)) = 0.12.1 +Provides: bundled(crate(prost-derive)) = 0.12.1 +Provides: bundled(crate(pulse)) = 0.3.0 +Provides: bundled(crate(pulse-ffi)) = 0.1.0 +Provides: bundled(crate(qcms)) = 0.3.0 +Provides: bundled(crate(qlog)) = 0.13.0 +Provides: bundled(crate(quick-error)) = 1.2.3 +Provides: bundled(crate(quote)) = 1.0.27 +Provides: bundled(crate(quote)) = 1.0.35 +Provides: bundled(crate(rand)) = 0.8.5 +Provides: bundled(crate(rand_chacha)) = 0.3.1 +Provides: bundled(crate(rand_core)) = 0.6.4 +Provides: bundled(crate(raw-window-handle)) = 0.6.0 +Provides: bundled(crate(rayon)) = 1.6.1 +Provides: bundled(crate(rayon-core)) = 1.12.0 +Provides: bundled(crate(regex)) = 1.9.4 +Provides: bundled(crate(regex-automata)) = 0.3.7 +Provides: bundled(crate(regex-syntax)) = 0.7.5 +Provides: bundled(crate(relevancy)) = 0.1.0 +Provides: bundled(crate(remote_settings)) = 0.1.0 +Provides: bundled(crate(remove_dir_all)) = 0.5.3 +Provides: bundled(crate(replace_with)) = 0.1.7 +Provides: bundled(crate(ringbuf)) = 0.2.8 +Provides: bundled(crate(rkv)) = 0.19.0 +Provides: bundled(crate(ron)) = 0.8.1 +Provides: bundled(crate(rsclientcerts)) = 0.1.0 +Provides: bundled(crate(rsdparsa_capi)) = 0.1.0 +Provides: bundled(crate(runloop)) = 0.1.0 +Provides: bundled(crate(rure)) = 0.2.2 +Provides: bundled(crate(rusqlite)) = 0.31.0 +Provides: bundled(crate(rust_cascade)) = 1.5.0 +Provides: bundled(crate(rustc-demangle)) = 0.1.21 +Provides: bundled(crate(rustc-hash)) = 1.1.0 +Provides: bundled(crate(rustc_version)) = 0.4.0 +Provides: bundled(crate(rust_decimal)) = 1.28.1 +Provides: bundled(crate(rustix)) = 0.37.19 +Provides: bundled(crate(rustix)) = 0.38.28 +Provides: bundled(crate(ryu)) = 1.0.12 +Provides: bundled(crate(ryu)) = 1.0.13 +Provides: bundled(crate(same-file)) = 1.0.6 +Provides: bundled(crate(scopeguard)) = 1.1.0 +Provides: bundled(crate(scroll)) = 0.12.0 +Provides: bundled(crate(scroll_derive)) = 0.12.0 +Provides: bundled(crate(selectors)) = 0.22.0 +Provides: bundled(crate(self_cell)) = 0.10.2 +Provides: bundled(crate(semver)) = 1.0.16 +Provides: bundled(crate(serde)) = 1.0.163 +Provides: bundled(crate(serde)) = 1.0.203 +Provides: bundled(crate(serde_bytes)) = 0.11.9 +Provides: bundled(crate(serde_cbor)) = 0.11.2 +Provides: bundled(crate(serde_derive)) = 1.0.163 +Provides: bundled(crate(serde_derive)) = 1.0.203 +Provides: bundled(crate(serde_json)) = 1.0.116 +Provides: bundled(crate(serde_json)) = 1.0.96 +Provides: bundled(crate(serde_path_to_error)) = 0.1.11 +Provides: bundled(crate(serde_with)) = 3.0.0 +Provides: bundled(crate(serde_with_macros)) = 3.0.0 +Provides: bundled(crate(servo_arc)) = 0.1.1 +Provides: bundled(crate(sfv)) = 0.9.4 +Provides: bundled(crate(sha1)) = 0.10.5 +Provides: bundled(crate(sha2)) = 0.10.6 +Provides: bundled(crate(sha3)) = 0.10.8 +Provides: bundled(crate(shlex)) = 1.1.0 +Provides: bundled(crate(siphasher)) = 0.3.10 +Provides: bundled(crate(slab)) = 0.4.8 +Provides: bundled(crate(smallbitvec)) = 2.5.1 +Provides: bundled(crate(smallvec)) = 1.13.1 +Provides: bundled(crate(smawk)) = 0.3.2 +Provides: bundled(crate(socket2)) = 0.4.999 +Provides: bundled(crate(socket2)) = 0.5.7 +Provides: bundled(crate(spirv)) = 0.3.0+sdk-1.3.268.0 +Provides: bundled(crate(sql-support)) = 0.1.0 +Provides: bundled(crate(stable_deref_trait)) = 1.2.0 +Provides: bundled(crate(static_assertions)) = 1.1.0 +Provides: bundled(crate(static_prefs)) = 0.1.0 +Provides: bundled(crate(storage)) = 0.1.0 +Provides: bundled(crate(storage_variant)) = 0.1.0 +Provides: bundled(crate(strck)) = 0.1.2 +Provides: bundled(crate(strck_ident)) = 0.1.2 +Provides: bundled(crate(strsim)) = 0.10.0 +Provides: bundled(crate(style)) = 0.0.1 +Provides: bundled(crate(style_derive)) = 0.0.1 +Provides: bundled(crate(style_traits)) = 0.0.1 +Provides: bundled(crate(subtle)) = 2.5.0 +Provides: bundled(crate(suggest)) = 0.1.0 +Provides: bundled(crate(svg_fmt)) = 0.4.1 +Provides: bundled(crate(swgl)) = 0.1.0 +Provides: bundled(crate(syn)) = 1.0.109 +Provides: bundled(crate(syn)) = 2.0.16 +Provides: bundled(crate(syn)) = 2.0.46 +Provides: bundled(crate(sync15)) = 0.1.0 +Provides: bundled(crate(sync-guid)) = 0.1.0 +Provides: bundled(crate(synstructure)) = 0.13.1 +Provides: bundled(crate(tabs)) = 0.1.0 +Provides: bundled(crate(tempfile)) = 3.5.0 +Provides: bundled(crate(tempfile)) = 3.9.0 +Provides: bundled(crate(termcolor)) = 1.2.0 +Provides: bundled(crate(termcolor)) = 1.4.1 +Provides: bundled(crate(textwrap)) = 0.16.0 +Provides: bundled(crate(textwrap)) = 0.16.1 +Provides: bundled(crate(thin-vec)) = 0.2.12 +Provides: bundled(crate(thiserror)) = 1.0.61 +Provides: bundled(crate(thiserror-impl)) = 1.0.61 +Provides: bundled(crate(threadbound)) = 0.1.5 +Provides: bundled(crate(time)) = 0.1.45 +Provides: bundled(crate(time)) = 0.3.36 +Provides: bundled(crate(time-core)) = 0.1.2 +Provides: bundled(crate(time-macros)) = 0.2.18 +Provides: bundled(crate(tinystr)) = 0.7.4 +Provides: bundled(crate(tinyvec)) = 1.999.999 +Provides: bundled(crate(toml)) = 0.5.11 +Provides: bundled(crate(topological-sort)) = 0.1.0 +Provides: bundled(crate(to_shmem)) = 0.0.1 +Provides: bundled(crate(to_shmem_derive)) = 0.0.1 +Provides: bundled(crate(tracy-rs)) = 0.1.2 +Provides: bundled(crate(typed-arena-nomut)) = 0.1.0 +Provides: bundled(crate(type-map)) = 0.4.0 +Provides: bundled(crate(typenum)) = 1.16.0 +Provides: bundled(crate(types)) = 0.1.0 +Provides: bundled(crate(uluru)) = 3.0.0 +Provides: bundled(crate(unicase)) = 2.6.0 +Provides: bundled(crate(unic-langid)) = 0.9.5 +Provides: bundled(crate(unic-langid-ffi)) = 0.1.0 +Provides: bundled(crate(unic-langid-impl)) = 0.9.5 +Provides: bundled(crate(unicode-bidi)) = 0.3.15 +Provides: bundled(crate(unicode-bidi-ffi)) = 0.1.0 +Provides: bundled(crate(unicode-ident)) = 1.0.6 +Provides: bundled(crate(unicode-ident)) = 1.0.8 +Provides: bundled(crate(unicode-linebreak)) = 0.1.5 +Provides: bundled(crate(unicode-normalization)) = 0.1.22 +Provides: bundled(crate(unicode-width)) = 0.1.10 +Provides: bundled(crate(unicode-xid)) = 0.2.4 +Provides: bundled(crate(uniffi)) = 0.27.1 +Provides: bundled(crate(uniffi_bindgen)) = 0.27.1 +Provides: bundled(crate(uniffi_build)) = 0.27.1 +Provides: bundled(crate(uniffi_checksum_derive)) = 0.27.1 +Provides: bundled(crate(uniffi_core)) = 0.27.1 +Provides: bundled(crate(uniffi_macros)) = 0.27.1 +Provides: bundled(crate(uniffi_meta)) = 0.27.1 +Provides: bundled(crate(uniffi_testing)) = 0.27.1 +Provides: bundled(crate(uniffi_udl)) = 0.27.1 +Provides: bundled(crate(url)) = 2.5.0 +Provides: bundled(crate(utf8_iter)) = 1.0.3 +Provides: bundled(crate(uuid)) = 1.3.0 +Provides: bundled(crate(vcpkg)) = 0.2.999 +Provides: bundled(crate(version_check)) = 0.9.4 +Provides: bundled(crate(viaduct)) = 0.1.0 +Provides: bundled(crate(void)) = 1.0.2 +Provides: bundled(crate(walkdir)) = 2.3.2 +Provides: bundled(crate(wasm-encoder)) = 0.205.0 +Provides: bundled(crate(wast)) = 205.0.0 +Provides: bundled(crate(webext-storage)) = 0.1.0 +Provides: bundled(crate(webext_storage_bridge)) = 0.1.0 +Provides: bundled(crate(webrender)) = 0.62.0 +Provides: bundled(crate(webrender_api)) = 0.62.0 +Provides: bundled(crate(webrender_bindings)) = 0.1.0 +Provides: bundled(crate(webrender_build)) = 0.0.2 +Provides: bundled(crate(webrtc-sdp)) = 0.3.11 +Provides: bundled(crate(weedle2)) = 5.0.0 +Provides: bundled(crate(wgpu_bindings)) = 0.1.0 +Provides: bundled(crate(wgpu-core)) = 0.20.0 +Provides: bundled(crate(wgpu-hal)) = 0.20.0 +Provides: bundled(crate(wgpu-types)) = 0.20.0 +Provides: bundled(crate(whatsys)) = 0.3.1 +Provides: bundled(crate(wpf-gpu-raster)) = 0.1.0 +Provides: bundled(crate(wr_glyph_rasterizer)) = 0.1.0 +Provides: bundled(crate(writeable)) = 0.5.4 +Provides: bundled(crate(wr_malloc_size_of)) = 0.0.2 +Provides: bundled(crate(xmldecl)) = 0.2.0 +Provides: bundled(crate(xml-rs)) = 0.8.4 +Provides: bundled(crate(xpcom)) = 0.1.0 +Provides: bundled(crate(xpcom_macros)) = 0.1.0 +Provides: bundled(crate(yoke)) = 0.7.3 +Provides: bundled(crate(yoke-derive)) = 0.7.3 +Provides: bundled(crate(zeitstempel)) = 0.1.1 +Provides: bundled(crate(zerocopy)) = 0.7.32 +Provides: bundled(crate(zerofrom)) = 0.1.2 +Provides: bundled(crate(zerofrom-derive)) = 0.1.3 +Provides: bundled(crate(zerovec)) = 0.10.1 +Provides: bundled(crate(zerovec-derive)) = 0.10.1 + %description Mozilla Firefox is an open-source web browser, designed for standards compliance, performance and portability. -%if %{with langpacks_subpkg} -%package langpacks -Summary: Firefox langpacks -Requires: %{name} = %{version}-%{release} - -%description langpacks -The firefox-langpacks package contains all the localization -and translations langpack add-ons. - -%files langpacks -f %{name}.lang -%dir %{langpackdir} -%endif - -%if %{enable_mozilla_crashreporter} -%global moz_debug_prefix %{_prefix}/lib/debug -%global moz_debug_dir %{moz_debug_prefix}%{mozappdir} -%global uname_m %(uname -m) -%global symbols_file_name %{name}-%{version}.en-US.%{_os}-%{uname_m}.crashreporter-symbols.zip -%global symbols_file_path %{moz_debug_dir}/%{symbols_file_name} -%global _find_debuginfo_opts -p %{symbols_file_path} -o debugcrashreporter.list -%global crashreporter_pkg_name mozilla-crashreporter-%{name}-debuginfo - -%package -n %{crashreporter_pkg_name} -Summary: Debugging symbols used by Mozilla's crash reporter servers - -%description -n %{crashreporter_pkg_name} -This package provides debug information for Firefox, for use by -Mozilla's crash reporter servers. If you are trying to locally -debug %{name}, you want to install %{name}-debuginfo instead. - -%files -n %{crashreporter_pkg_name} -f debugcrashreporter.list -%endif - -%package x11 -Summary: Firefox X11 launcher. -Requires: %{name} - -%description x11 -The firefox-x11 package contains launcher and desktop file -to run Firefox explicitly on X11. - -%package wayland -Summary: Firefox Wayland launcher. -Requires: %{name} - -%description wayland -The firefox-wayland package contains launcher and desktop file -to run Firefox explicitly on Wayland. - %if 0%{?run_firefox_tests} %global testsuite_pkg_name %{name}-testresults %package -n %{testsuite_pkg_name} Summary: Results of testsuite - %description -n %{testsuite_pkg_name} This package contains results of tests executed during build. - %files -n %{testsuite_pkg_name} /%{version}-%{release}/test_results /%{version}-%{release}/test_summary.txt /%{version}-%{release}/failures-* %endif -%prep -%setup -q -n %{tarballdir} - -%patch -P40 -p1 -b .aarch64-skia -%patch -P44 -p1 -b .build-arm-libopus -%patch -P47 -p1 -b .fedora-shebang -%patch -P53 -p1 -b .firefox-gcc-build -%patch -P54 -p1 -b .1669639 -%patch -P71 -p1 -b .0001-GLIBCXX-fix-for-GCC-12 -%patch -P78 -p1 -b .firefox-i686 -%patch -P79 -p1 -b .firefox-gcc-13-build - -%patch -P102 -p1 -b .firefox-tests-xpcshell-freeze - -%patch -P215 -p1 -b .addons -%patch -P219 -p1 -b .rhbz-1173156 -%ifarch aarch64 -%patch -P226 -p1 -b .1354671 +%if 0%{?rhel} >= 9 +%package x11 +Summary: Firefox X11 launcher. +Requires: %{name} = %{version}-%{release} +%description x11 +The firefox-x11 package contains launcher and desktop file +to run Firefox explicitly on X11. +%files x11 +%{_bindir}/firefox-x11 +%{_datadir}/applications/firefox-x11.desktop %endif -%patch -P228 -p1 -b .disable-openh264-download -%patch -P229 -p1 -b .firefox-nss-addon-hack -%patch -P230 -p1 -b .firefox-enable-vaapi -%patch -P402 -p1 -b .1196777 -%patch -P407 -p1 -b .1667096 +#--------------------------------------------------------------------- -%if %{build_with_pgo} -%if !%{build_with_clang} -%patch -P600 -p1 -b .pgo -%endif +%prep +echo "Build environment" +echo "--------------------------------------------" +echo "dist %{?dist}" +echo "RHEL minor version: %{?rhel_minor_version}" +echo "bundle_nss %{?bundle_nss}" +echo "system_nss %{?system_nss}" +echo "use_dts %{?use_dts}" +echo "use_nodejs_scl %{?use_nodejs_scl}" +echo "use_python3_scl %{?use_python3_scl}" +echo "--------------------------------------------" +#clang -print-search-dirs +%setup -q -n %{name}-%{version} + +# ---- RHEL specific patches --- +# -- Downstream only -- +%patch -P1 -p1 -b .disable-elfhack +%patch -P2 -p1 -b .firefox-gcc-build +%patch -P3 -p1 -b .build-big-endian-errors +%if 0%{?rhel} == 7 +%patch -P5 -p1 -b .build-rhel7-lower-node-min-version +# Disable gamepad due to old kernel +%patch -P11 -p1 -b .gamepad + %ifarch ppc64 + # abiv2 version not available in RHEL7 ppc + # TODO most likely not needed with system nss +%patch -P6 -p1 -b .ppc64-abiv2 + %endif + %ifarch %{ix86} + # -F dwarf not available in RHEL7's nasm +%patch -P7 -p1 -b .build-rhel7-nasm-dwarf + %endif +%endif +%if 0%{?rhel} == 7 || (0%{?rhel} == 8 && %{rhel_minor_version} <= 2) +%patch -P8 -p1 -b .disable-pipewire +%endif +%patch -P9 -p1 -b .rhbz-2131158-webrtc-nss-fix +%patch -P10 -p1 -b .build-ffvpx + +# -- Upstreamed patches -- +%patch -P51 -p1 -b .mozilla-bmo1170092 + +# -- Submitted upstream, not merged -- +%patch -P101 -p1 -b .mozilla-bmo1636168-fscreen +%patch -P102 -p1 -b .mozilla-bmo1670333 +%patch -P103 -p1 -b .mozilla-bmo1504834-part1 +%patch -P104 -p1 -b .mozilla-bmo1504834-part3 +%patch -P105 -p1 -b .mozilla-bmo849632 +%patch -P106 -p1 -b .mozilla-bmo998749 +%patch -P107 -p1 -b .mozilla-bmo1716707-swizzle +%patch -P108 -p1 -b .mozilla-bmo1716707-svg +%patch -P109 -p1 -b .mozilla-bmo1789216-disable-av1 +%patch -P110 -p1 -b .libaom + +# ---- Fedora specific patches ---- +%patch -P151 -p1 -b .addons +%patch -P152 -p1 -b .rhbz-1173156 +%patch -P154 -p1 -b .addons-nss-hack +# ARM run-time patch +%ifarch aarch64 +%patch -P155 -p1 -b .rhbz-1354671 %endif -%patch -P603 -p1 -b .inline -%patch -P1200 -p1 -b .rustflags-commasplit +# ---- Security patches ---- -%patch1201 -p1 -%patch1202 -p1 -%patch1203 -p1 -%patch1204 -p1 -%patch1205 -p1 -%patch1206 -p1 - -rm -f .mozconfig -cp %{SOURCE10} .mozconfig -echo "ac_add_options --enable-default-toolkit=cairo-gtk3-wayland" >> .mozconfig -%if %{official_branding} -echo "ac_add_options --enable-official-branding" >> .mozconfig -%endif -cp %{SOURCE24} mozilla-api-key -cp %{SOURCE27} google-api-key -cp %{SOURCE35} google-loc-api-key +%{__rm} -f .mozconfig +%{__cp} %{SOURCE10} .mozconfig +%{__cp} %{SOURCE24} mozilla-api-key +%{__cp} %{SOURCE27} google-api-key +%{__cp} %{SOURCE35} google-loc-api-key echo "ac_add_options --prefix=\"%{_prefix}\"" >> .mozconfig echo "ac_add_options --libdir=\"%{_libdir}\"" >> .mozconfig @@ -469,24 +1192,15 @@ echo "ac_add_options --without-system-nspr" >> .mozconfig echo "ac_add_options --without-system-nss" >> .mozconfig %endif -%if %{?system_libevent} -echo "ac_add_options --with-system-libevent" >> .mozconfig -%endif - -%if %{?system_ffi} -echo "ac_add_options --enable-system-ffi" >> .mozconfig -%endif - -%ifarch aarch64 -echo "ac_add_options --disable-elf-hack" >> .mozconfig -%endif - %if %{?debug_build} echo "ac_add_options --enable-debug" >> .mozconfig echo "ac_add_options --disable-optimize" >> .mozconfig %else %global optimize_flags "none" -%ifarch aarch64 +%ifarch s390x +%global optimize_flags "-g -O1" +%endif +%ifarch ppc64le aarch64 %global optimize_flags "-g -O2" %endif %if %{optimize_flags} != "none" @@ -497,69 +1211,175 @@ echo 'ac_add_options --enable-optimize' >> .mozconfig echo "ac_add_options --disable-debug" >> .mozconfig %endif -%ifnarch x86_64 +# Second arches fail to start with jemalloc enabled +%ifnarch %{ix86} x86_64 echo "ac_add_options --disable-jemalloc" >> .mozconfig %endif -%if !%{enable_mozilla_crashreporter} -echo "ac_add_options --disable-crashreporter" >> .mozconfig -%endif - %if 0%{?build_tests} echo "ac_add_options --enable-tests" >> .mozconfig %else echo "ac_add_options --disable-tests" >> .mozconfig %endif -%if !%{?system_jpeg} -echo "ac_add_options --without-system-jpeg" >> .mozconfig +%if %{?system_libvpx} +echo "ac_add_options --with-system-libvpx" >> .mozconfig %else -echo "ac_add_options --with-system-jpeg" >> .mozconfig +echo "ac_add_options --without-system-libvpx" >> .mozconfig %endif -%if %{?system_pixman} -echo "ac_add_options --enable-system-pixman" >> .mozconfig +%ifarch s390x +echo "ac_add_options --disable-jit" >> .mozconfig %endif -%if %{?system_webp} -echo "ac_add_options --with-system-webp" >> .mozconfig -%else -echo "ac_add_options --without-system-webp" >> .mozconfig +%ifarch ppc64 ppc64le +echo "ac_add_options --disable-webrtc" >> .mozconfig +echo "ac_add_options --disable-lto" >> .mozconfig %endif +echo "ac_add_options --disable-lto" >> .mozconfig -%if %{?system_libvpx} -echo "ac_add_options --with-system-libvpx" >> .mozconfig -%else -echo "ac_add_options --without-system-libvpx" >> .mozconfig -%endif - -%if %{build_with_asan} -echo "ac_add_options --enable-address-sanitizer" >> .mozconfig -echo "ac_add_options --disable-jemalloc" >> .mozconfig +# AV1 requires newer nasm that was rebased in 8.4 +%if 0%{?rhel} == 7 || (0%{?rhel} == 8 && %{rhel_minor_version} < 4) +echo "ac_add_options --disable-av1" >> .mozconfig %endif +# api keys full path echo "ac_add_options --with-mozilla-api-keyfile=`pwd`/mozilla-api-key" >> .mozconfig echo "ac_add_options --with-google-location-service-api-keyfile=`pwd`/google-loc-api-key" >> .mozconfig echo "ac_add_options --with-google-safebrowsing-api-keyfile=`pwd`/google-api-key" >> .mozconfig +# May result in empty --with-libclang-path= in earlier versions. +# So far this is needed only for c8s/c9s. +# Clang 17 upstream's detection fails, tell it where to look. +echo "ac_add_options --with-libclang-path=`llvm-config --libdir`" >> .mozconfig + echo 'export NODEJS="%{_buildrootdir}/bin/node-stdout-nonblocking-wrapper"' >> .mozconfig +# Remove executable bit to make brp-mangle-shebangs happy. chmod -x third_party/rust/itertools/src/lib.rs chmod a-x third_party/rust/ash/src/extensions/ext/*.rs chmod a-x third_party/rust/ash/src/extensions/khr/*.rs chmod a-x third_party/rust/ash/src/extensions/nv/*.rs +#--------------------------------------------------------------------- + %build +# TODO: causes SIGSEGV on the webrender compilation, we might remove it with newer rust version +# Disable LTO to work around rhbz#1883904 %define _lto_cflags %{nil} -%if 0%{?use_bundled_cbindgen} +export PATH="%{_buildrootdir}/bin:$PATH" +# Cleanup buildroot for existing rpms from bundled nss/nspr and other packages +rm -rf %{_buildrootdir}/* + +function install_rpms_to_current_dir() { + PACKAGE_RPM=$(eval echo $1) + PACKAGE_DIR=%{_rpmdir} + + if [ ! -f $PACKAGE_DIR/$PACKAGE_RPM ]; then + # Hack for tps tests + ARCH_STR=%{_arch} + %ifarch %{ix86} + ARCH_STR="i?86" + %endif + PACKAGE_DIR="$PACKAGE_DIR/$ARCH_STR" + fi + + for package in $(ls $PACKAGE_DIR/$PACKAGE_RPM) + do + echo "$package" + rpm2cpio "$package" | cpio -ivdu + done +} + +%if 0%{?bundle_nss} +%if 0%{?rhel} == 8 + # nspr + rpm -ivh %{SOURCE402} + rpmbuild --nodeps --define '_prefix %{bundled_install_path}' --without=tests -ba %{_specdir}/nspr.spec + pushd %{_buildrootdir} + install_rpms_to_current_dir nspr-4*.rpm + install_rpms_to_current_dir nspr-devel*.rpm + popd + echo "Setting nspr flags" + # nss-setup-flags-env.inc + sed -i 's@%{bundled_install_path}@%{_buildrootdir}%{bundled_install_path}@g' %{_buildrootdir}%{bundled_install_path}/%{_lib}/pkgconfig/nspr*.pc + + export LDFLAGS="-L%{_buildrootdir}%{bundled_install_path}/%{_lib} $LDFLAGS" + export LDFLAGS="-Wl,-rpath,%{bundled_install_path}/%{_lib} $LDFLAGS" + export LDFLAGS="-Wl,-rpath-link,%{_buildrootdir}%{bundled_install_path}/%{_lib} $LDFLAGS" + export PKG_CONFIG_PATH=%{_buildrootdir}%{bundled_install_path}/%{_lib}/pkgconfig + export PATH="%{_buildrootdir}%{bundled_install_path}/bin:$PATH" + + export PATH=%{_buildrootdir}/%{bundled_install_path}/bin:$PATH + rpm -ivh %{SOURCE403} + +%else + rpm -ivh %{SOURCE404} +%endif + # nss + rpmbuild --nodeps --define '_prefix %{bundled_install_path}' --without=tests -ba %{_specdir}/nss.spec + pushd %{_buildrootdir} + #cleanup + install_rpms_to_current_dir nss-3*.rpm + install_rpms_to_current_dir nss-devel*.rpm + install_rpms_to_current_dir nss-pkcs11-devel*.rpm + install_rpms_to_current_dir nss-softokn-3*.rpm + install_rpms_to_current_dir nss-softokn-devel*.rpm + install_rpms_to_current_dir nss-softokn-freebl-3*.rpm + install_rpms_to_current_dir nss-softokn-freebl-devel*.rpm + install_rpms_to_current_dir nss-util-3*.rpm + install_rpms_to_current_dir nss-util-devel*.rpm +%if 0%{?rhel} > 8 + + install_rpms_to_current_dir nspr-4*.rpm + install_rpms_to_current_dir nspr-devel*.rpm + sed -i 's@%{bundled_install_path}@%{_buildrootdir}%{bundled_install_path}@g' %{_buildrootdir}%{bundled_install_path}/%{_lib}/pkgconfig/nspr*.pc +%endif + popd + %filter_provides_in %{bundled_install_path}/%{_lib} + %filter_requires_in %{bundled_install_path}/%{_lib} + %filter_from_requires /libnss3.so.*/d + %filter_from_requires /libsmime3.so.*/d + %filter_from_requires /libssl3.so.*/d + %filter_from_requires /libnssutil3.so.*/d + %filter_from_requires /libnspr4.so.*/d + + export LDFLAGS="-L%{_buildrootdir}%{bundled_install_path}/%{_lib} $LDFLAGS" + export LDFLAGS="-Wl,-rpath,%{bundled_install_path}/%{_lib} $LDFLAGS" + export LDFLAGS="-Wl,-rpath-link,%{_buildrootdir}%{bundled_install_path}/%{_lib} $LDFLAGS" + export PKG_CONFIG_PATH=%{_buildrootdir}%{bundled_install_path}/%{_lib}/pkgconfig + export PATH="%{_buildrootdir}%{bundled_install_path}/bin:$PATH" +%endif + +# Enable toolsets +set +e +%if 0%{?use_gcc_ts} +source scl_source enable gcc-toolset-13 +%endif +%if 0%{?use_dts} +source scl_source enable devtoolset-%{dts_version} +%endif +%if 0%{?use_nodejs_scl} +source scl_source enable rh-nodejs10 +%endif +%if 0%{?use_python3_scl} +source scl_source enable rh-python38 +%endif + +set -e +env +which gcc +which c++ +which g++ +which ld +which nasm +which node +which python3 +# Bundled cbindgen mkdir -p my_rust_vendor cd my_rust_vendor -tar xf %{SOURCE2} -%ifarch loongarch64 -rm -rf %{_builddir}/%{name}-%{version}/my_rust_vendor/libc/ -cp -r /usr/share/cargo/vendor/libc %{_builddir}/%{name}-%{version}/my_rust_vendor -%endif +%{__tar} xf %{SOURCE2} mkdir -p .cargo cat > .cargo/config <> .mozconfig %endif +%if 0%{?bundle_nss} + mkdir -p %{_buildrootdir}%{bundled_install_path}/%{_lib} + MOZ_LINK_FLAGS="-L%{_buildrootdir}%{bundled_install_path}/%{_lib} $MOZ_LINK_FLAGS" + MOZ_LINK_FLAGS="-Wl,-rpath,%{bundled_install_path}/%{_lib} $MOZ_LINK_FLAGS" + MOZ_LINK_FLAGS="-Wl,-rpath-link,%{_buildrootdir}%{bundled_install_path}/%{_lib} $MOZ_LINK_FLAGS" +%endif + +# We don't wantfirefox to use CK_GCM_PARAMS_V3 in nss MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -DNSS_PKCS11_3_0_STRICT" echo "export CFLAGS=\"$MOZ_OPT_FLAGS\"" >> .mozconfig echo "export CXXFLAGS=\"$MOZ_OPT_FLAGS\"" >> .mozconfig echo "export LDFLAGS=\"$MOZ_LINK_FLAGS\"" >> .mozconfig - -%if %{build_with_clang} -echo "export LLVM_PROFDATA=\"llvm-profdata\"" >> .mozconfig -echo "export AR=\"llvm-ar\"" >> .mozconfig -echo "export NM=\"llvm-nm\"" >> .mozconfig -echo "export RANLIB=\"llvm-ranlib\"" >> .mozconfig -echo "ac_add_options --enable-linker=lld" >> .mozconfig -%else echo "export CC=gcc" >> .mozconfig echo "export CXX=g++" >> .mozconfig echo "export AR=\"gcc-ar\"" >> .mozconfig echo "export NM=\"gcc-nm\"" >> .mozconfig echo "export RANLIB=\"gcc-ranlib\"" >> .mozconfig -%endif -%if 0%{?build_with_pgo} -echo "ac_add_options MOZ_PGO=1" >> .mozconfig -export CCACHE_DISABLE=1 -%endif - -%constrain_build -m 2048 -echo "mk_add_options MOZ_MAKE_FLAGS=\"-j%{_smp_build_ncpus}\"" >> .mozconfig +MOZ_SMP_FLAGS=-j1 +# On x86_64 architectures, Mozilla can build up to 4 jobs at once in parallel, +# however builds tend to fail on other arches when building in parallel. +#%ifarch %{ix86} s390x aarch64 ppc64le +#[ -z "$RPM_BUILD_NCPUS" ] && \ +# RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`" +#[ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2 +#%endif +#%ifarch x86_64 ppc ppc64 ppc64le +[ -z "$RPM_BUILD_NCPUS" ] && \ + RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`" +[ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2 +[ "$RPM_BUILD_NCPUS" -ge 4 ] && MOZ_SMP_FLAGS=-j4 +[ "$RPM_BUILD_NCPUS" -ge 8 ] && MOZ_SMP_FLAGS=-j8 +[ "$RPM_BUILD_NCPUS" -ge 16 ] && MOZ_SMP_FLAGS=-j16 +#%endif + +echo "mk_add_options MOZ_MAKE_FLAGS=\"$MOZ_SMP_FLAGS\"" >> .mozconfig echo "mk_add_options MOZ_SERVICES_SYNC=1" >> .mozconfig echo "export STRIP=/bin/true" >> .mozconfig %if %{launch_wayland_compositor} -cp %{SOURCE45} . -. ./run-wayland-compositor +cp %{SOURCE36} . +. ./testing.sh run_wayland_compositor %endif -%if %{build_with_pgo} -%if %{test_on_wayland} -env | grep "WAYLAND" -MOZ_ENABLE_WAYLAND=1 ./mach build -v 2>&1 | cat - || exit 1 -%else -xvfb-run ./mach build -v 2>&1 | cat - || exit 1 -%endif -%else -./mach build -v 2>&1 | cat - || exit 1 +# We could use %%include, but in %%files, %%post and other sections, but in these +# sections it could lead to syntax errors about unclosed %%if. Work around it by +# using the following macro +%define include_file() %{expand:%(cat '%1')} + +%if 0%{?bundle_nss} + echo "Setting nss flags" + # nss-setup-flags-env.inc + %include_file %{SOURCE401} + export PATH=%{_buildrootdir}/%{bundled_install_path}/bin:$PATH + echo $PKG_CONFIG_PATH %endif +./mach build -v 2>&1 || exit 1 + +#--------------------------------------------------------------------- %install -export MACH_USE_SYSTEM_PYTHON=1 +export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system +function install_rpms_to_current_dir() { + PACKAGE_RPM=$(eval echo $1) + PACKAGE_DIR=%{_rpmdir} + + if [ ! -f $PACKAGE_DIR/$PACKAGE_RPM ]; then + # Hack for tps tests + ARCH_STR=%{_arch} + %ifarch %{ix86} + ARCH_STR="i?86" + %endif + PACKAGE_DIR="$PACKAGE_DIR/$ARCH_STR" + fi + + for package in $(ls $PACKAGE_DIR/$PACKAGE_RPM) + do + echo "$package" + rpm2cpio "$package" | cpio -ivdu + done +} + +%if 0%{?bundle_nss} + pushd %{buildroot} + install_rpms_to_current_dir nspr-4*.rpm + install_rpms_to_current_dir nss-3*.rpm + install_rpms_to_current_dir nss-softokn-3*.rpm + install_rpms_to_current_dir nss-softokn-freebl-3*.rpm + install_rpms_to_current_dir nss-util-3*.rpm + + # cleanup unecessary nss files + rm -rf %{buildroot}/%{bundled_install_path}/lib/dracut + rm -rf %{buildroot}/%{bundled_install_path}/%{_lib}/nss + rm -rf %{buildroot}/%{bundled_install_path}/%{_lib}/share + rm -rf %{buildroot}/%{bundled_install_path}/share + rm -rf %{buildroot}/etc/pki + rm -rf %{buildroot}/usr/lib/.build-id + rm -rf %{buildroot}/etc/crypto-policies + popd +%endif + +# run Firefox test suite %if %{launch_wayland_compositor} -cp %{SOURCE45} . -. ./run-wayland-compositor +cp %{SOURCE36} . +. ./testing.sh run_wayland_compositor %endif %if 0%{?run_firefox_tests} -mkdir -p objdir/_virtualenvs/init_py3 -cat > objdir/_virtualenvs/init_py3/pip.conf << EOF + mkdir -p objdir/_virtualenvs/init_py3 + %{__cat} > objdir/_virtualenvs/init_py3/pip.conf << EOF [global] find-links=`pwd`/mochitest-python no-index=true EOF -tar xf %{SOURCE37} -cp %{SOURCE40} %{SOURCE41} %{SOURCE42} %{SOURCE38} %{SOURCE39} %{SOURCE43} %{SOURCE44} . -mkdir -p test_results -%if %{test_on_wayland} -./run-tests-wayland || true -%else -./run-tests-x11 || true -%endif -./print_results > test_summary.txt 2>&1 || true -./print_failures || true -%endif - -cat > objdir/dist/bin/browser/defaults/preferences/firefox-l10n.js << EOF + tar xf %{SOURCE37} + cp %{SOURCE36} . + mkdir -p test_results + %if %{?test_on_wayland} + ./testing.sh run_tests_wayland || true + %else + ./testing.sh run_tests_x11 || true + %endif + ./testing.sh print_results > test_summary.txt 2>&1 || true + ./testing.sh print_failures || true +%endif + +# set up our default bookmarks +#%if !0%{?flatpak} + #%global default_bookmarks_file /usr/share/bookmarks/default-bookmarks.html + #%{__cp} -p %{default_bookmarks_file} objdir/dist/bin/browser/chrome/browser/content/browser/default-bookmarks.html +#%endif + +# Make sure locale works for langpacks +%{__cat} > objdir/dist/bin/browser/defaults/preferences/firefox-l10n.js << EOF pref("general.useragent.locale", "chrome://global/locale/intl.properties"); EOF DESTDIR=%{buildroot} make -C objdir install -mkdir -p %{buildroot}{%{_libdir},%{_bindir},%{_datadir}/applications} + +%{__mkdir_p} %{buildroot}{%{_libdir},%{_bindir},%{_datadir}/applications} desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE20} +%if 0%{?rhel} >= 9 desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE31} -desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE29} +%endif + +# set up the firefox start script +%{__rm} -rf %{buildroot}%{_bindir}/firefox +%{__sed} -e 's,/__PREFIX__,%{_prefix},g' %{SOURCE21} > %{buildroot}%{_bindir}/firefox +%{__chmod} 755 %{buildroot}%{_bindir}/firefox -rm -rf %{buildroot}%{_bindir}/firefox -sed -e 's,/__PREFIX__,%{_prefix},g' %{SOURCE21} > %{buildroot}%{_bindir}/firefox -chmod 755 %{buildroot}%{_bindir}/firefox +%if 0%{?flatpak} +sed -i -e 's|%FLATPAK_ENV_VARS%|export TMPDIR="$XDG_CACHE_HOME/tmp"|' %{buildroot}%{_bindir}/firefox +%else sed -i -e 's|%FLATPAK_ENV_VARS%||' %{buildroot}%{_bindir}/firefox -sed -e 's,/__PREFIX__,%{_prefix},g' %{SOURCE30} > %{buildroot}%{_bindir}/firefox-x11 -chmod 755 %{buildroot}%{_bindir}/firefox-x11 -sed -e 's,/__PREFIX__,%{_prefix},g' %{SOURCE28} > %{buildroot}%{_bindir}/firefox-wayland -chmod 755 %{buildroot}%{_bindir}/firefox-wayland +%endif + +# Run firefox under wayland only on RHEL9 and newer +%if 0%{?rhel} < 9 +sed -i -e 's|%DISABLE_WAYLAND_PLACEHOLDER%|export MOZ_DISABLE_WAYLAND=1|' %{buildroot}%{_bindir}/firefox +%else +sed -i -e 's|%DISABLE_WAYLAND_PLACEHOLDER%||' %{buildroot}%{_bindir}/firefox +# firefox-x11 launch script for RHEL9 only +%{__sed} -e 's,/__PREFIX__,%{_prefix},g' %{SOURCE30} > %{buildroot}%{_bindir}/firefox-x11 +%{__chmod} 755 %{buildroot}%{_bindir}/firefox-x11 +%endif -install -p -D -m 644 %{SOURCE23} %{buildroot}%{_mandir}/man1/firefox.1 +%{__install} -p -D -m 644 %{SOURCE23} %{buildroot}%{_mandir}/man1/firefox.1 -rm -f %{buildroot}/%{mozappdir}/firefox-config -rm -f %{buildroot}/%{mozappdir}/update-settings.ini +%{__rm} -f %{buildroot}/%{mozappdir}/firefox-config +%{__rm} -f %{buildroot}/%{mozappdir}/update-settings.ini for s in 16 22 24 32 48 256; do - mkdir -p %{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps - cp -p browser/branding/official/default${s}.png \ - %{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps/firefox.png + %{__mkdir_p} %{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps + %{__cp} -p browser/branding/official/default${s}.png \ + %{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps/firefox.png done -mkdir -p %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps -cp -p %{SOURCE25} \ - %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps +# Install hight contrast icon +%{__mkdir_p} %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps +%{__cp} -p %{SOURCE25} \ + %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps echo > %{name}.lang %if %{with langpacks} -mkdir -p %{buildroot}%{langpackdir} -for langpack in %{_sourcedir}/*.xpi; do +# Extract langpacks, make any mods needed, repack the langpack, and install it. +%{__mkdir_p} %{buildroot}%{langpackdir} +%{__tar} xf %{SOURCE1} +for langpack in `ls firefox-langpacks/*.xpi`; do language=`basename $langpack .xpi` extensionID=langpack-$language@firefox.mozilla.org - mkdir -p $extensionID + %{__mkdir_p} $extensionID unzip -qq $langpack -d $extensionID find $extensionID -type f | xargs chmod 644 @@ -717,11 +1639,17 @@ for langpack in %{_sourcedir}/*.xpi; do zip -qq -r9mX ../${extensionID}.xpi * cd - - install -m 644 ${extensionID}.xpi %{buildroot}%{langpackdir} + %{__install} -m 644 ${extensionID}.xpi %{buildroot}%{langpackdir} language=`echo $language | sed -e 's/-/_/g'` +%if 0%{?flatpak} + echo "%{langpackdir}/${extensionID}.xpi" >> %{name}.lang +%else echo "%%lang($language) %{langpackdir}/${extensionID}.xpi" >> %{name}.lang +%endif done +%{__rm} -rf firefox-langpacks +# Install langpack workaround (see #707100, #821169) function create_default_langpack() { language_long=$1 language_short=$2 @@ -731,92 +1659,143 @@ cd - echo "%%lang($language_short) %{langpackdir}/langpack-$language_short@firefox.mozilla.org.xpi" >> %{name}.lang } -create_default_langpack "zh-CN" "zh" +# Table of fallbacks for each language +# please file a bug at bugzilla.redhat.com if the assignment is incorrect +#create_default_langpack "bn-IN" "bn" +create_default_langpack "es-AR" "es" +create_default_langpack "fy-NL" "fy" +create_default_langpack "ga-IE" "ga" +create_default_langpack "gu-IN" "gu" +create_default_langpack "hi-IN" "hi" +create_default_langpack "hy-AM" "hy" +create_default_langpack "nb-NO" "nb" +create_default_langpack "nn-NO" "nn" +create_default_langpack "pa-IN" "pa" +create_default_langpack "pt-PT" "pt" +create_default_langpack "sv-SE" "sv" +create_default_langpack "zh-TW" "zh" %endif -mkdir -p %{buildroot}/%{mozappdir}/browser/defaults/preferences -mkdir -p %{buildroot}/%{_sysconfdir}/%{name}/pref -mkdir -p %{buildroot}%{_datadir}/mozilla/extensions/%{firefox_app_id} -mkdir -p %{buildroot}%{_libdir}/mozilla/extensions/%{firefox_app_id} -install -p -c -m 644 LICENSE %{buildroot}/%{mozappdir} -rm -rf %{buildroot}%{mozappdir}/dictionaries -ln -s %{_datadir}/hunspell %{buildroot}%{mozappdir}/dictionaries +# Keep compatibility with the old preference location. +%{__mkdir_p} %{buildroot}%{mozappdir}/defaults/preferences +%{__mkdir_p} %{buildroot}%{mozappdir}/browser/defaults +ln -s %{mozappdir}/defaults/preferences $RPM_BUILD_ROOT/%{mozappdir}/browser/defaults/preferences +# Default preferences +%{__cp} %{SOURCE12} %{buildroot}%{mozappdir}/defaults/preferences/all-redhat.js +sed -i -e 's|%PREFIX%|%{_prefix}|' %{buildroot}%{mozappdir}/defaults/preferences/all-redhat.js +sed -i -e 's|%HOMEPAGE%|%{homepage}|' %{buildroot}%{mozappdir}/defaults/preferences/all-redhat.js +# Enable modern crypto for the key export on the RHEL9 only (rhbz#1764205) +%if 0%{?rhel} >= 9 + echo 'pref("security.pki.use_modern_crypto_with_pkcs12", true);' >> %{buildroot}%{mozappdir}/defaults/preferences/all-redhat.js +%endif -%if %{enable_mozilla_crashreporter} -./mach buildsymbols -sed -i -e "s/\[Crash Reporter\]/[Crash Reporter]\nEnabled=1/" %{buildroot}/%{mozappdir}/application.ini -mkdir -p %{buildroot}/%{moz_debug_dir} -cp objdir/dist/%{symbols_file_name} %{buildroot}/%{moz_debug_dir} +%ifarch s390x + echo 'pref("gfx.webrender.force-disabled", true);' >> %{buildroot}%{mozappdir}/defaults/preferences/all-redhat.js %endif -%if 0%{?run_firefox_tests} -mkdir -p %{buildroot}/%{version}-%{release}/test_results -cp test_results/* %{buildroot}/%{version}-%{release}/test_results -cp test_summary.txt %{buildroot}/%{version}-%{release}/ -cp failures-* %{buildroot}/%{version}-%{release}/ || true +%ifarch s390x ppc64 + echo 'pref("gfx.webrender.force-disabled", true);' >> %{buildroot}%{mozappdir}/defaults/preferences/all-redhat.js %endif -cp %{SOURCE12} %{buildroot}%{mozappdir}/browser/defaults/preferences -%if %{?use_xdg_file_portal} -echo 'pref("widget.use-xdg-desktop-portal.file-picker", 1);' >> %{buildroot}%{mozappdir}/browser/defaults/preferences/firefox-anolis-default-prefs.js +# System config dir +%{__mkdir_p} %{buildroot}/%{_sysconfdir}/%{name}/pref + +# System extensions +%global firefox_app_id \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\} +%{__mkdir_p} %{buildroot}%{_datadir}/mozilla/extensions/%{firefox_app_id} +%{__mkdir_p} %{buildroot}%{_libdir}/mozilla/extensions/%{firefox_app_id} + +# Copy over the LICENSE +%{__install} -p -c -m 644 LICENSE %{buildroot}/%{mozappdir} + +# Use the system hunspell dictionaries +%{__rm} -rf %{buildroot}%{mozappdir}/dictionaries +ln -s %{_datadir}/myspell %{buildroot}%{mozappdir}/dictionaries + +%if 0%{?run_firefox_tests} +%{__mkdir_p} %{buildroot}/%{version}-%{release}/test_results +%{__cp} test_results/* %{buildroot}/%{version}-%{release}/test_results +%{__cp} test_summary.txt %{buildroot}/%{version}-%{release}/ +%{__cp} failures-* %{buildroot}/%{version}-%{release}/ || true %endif -cp build/unix/run-mozilla.sh %{buildroot}%{mozappdir} +# Add distribution.ini +%{__mkdir_p} %{buildroot}%{mozappdir}/distribution +%{__cp} %{SOURCE26} %{buildroot}%{mozappdir}/distribution -mkdir -p %{buildroot}%{mozappdir}/distribution -cp %{SOURCE26} %{buildroot}%{mozappdir}/distribution +# CentOS +%if 0%{?centos} +%{__sed} -ie 's/redhat/centos/g' %{buildroot}%{mozappdir}/distribution +(source /etc/os-release; %{__sed} -ie 's/Red Hat Enterprise Linux/$NAME/' %{buildroot}%{mozappdir}/distribution) +cat %{buildroot}%{mozappdir}/distribution +%endif +# Install appdata file mkdir -p %{buildroot}%{_datadir}/metainfo -sed -e "s/__VERSION__/%{version}/" \ - -e "s/__DATE__/$(date '+%F')/" \ - %{SOURCE33} > %{buildroot}%{_datadir}/metainfo/firefox.appdata.xml +%{__sed} -e "s/__VERSION__/%{version}/" \ + -e "s/__DATE__/$(date '+%Y-%m-%d')/" \ + %{SOURCE33} > %{buildroot}%{_datadir}/metainfo/firefox.appdata.xml +# Install Gnome search provider files mkdir -p %{buildroot}%{_datadir}/gnome-shell/search-providers -cp %{SOURCE34} %{buildroot}%{_datadir}/gnome-shell/search-providers - -rm -f %{buildroot}%{mozappdirdev}/sdk/lib/libmozjs.so -rm -f %{buildroot}%{mozappdirdev}/sdk/lib/libmozalloc.so -rm -f %{buildroot}%{mozappdirdev}/sdk/lib/libxul.so - -%pretrans -p -require 'posix' -require 'os' -if (posix.stat("%{mozappdir}/browser/defaults/preferences", "type") == "link") then - posix.unlink("%{mozappdir}/browser/defaults/preferences") - posix.mkdir("%{mozappdir}/browser/defaults/preferences") - if (posix.stat("%{mozappdir}/defaults/preferences", "type") == "directory") then - for i,filename in pairs(posix.dir("%{mozappdir}/defaults/preferences")) do - os.rename("%{mozappdir}/defaults/preferences/"..filename, "%{mozappdir}/browser/defaults/preferences/"..filename) - end - f = io.open("%{mozappdir}/defaults/preferences/README","w") - if f then - f:write("Content of this directory has been moved to %{mozappdir}/browser/defaults/preferences.") - f:close() - end - end -end +%{__cp} %{SOURCE34} %{buildroot}%{_datadir}/gnome-shell/search-providers + +# Remove gtk2 support as flash plugin is no longer supported +rm -rf %{buildroot}%{mozappdir}/gtk2/ + +# Create a symlink to replace libnssckbi.so with p11-kit-client.so +# instead of p11-kit-trust.so, so that Firefox can see the system +# trust store on the host through the p11-kit RPC protocol. A symlink +# to libnss3.so is also needed, because Firefox tries to load +# libnssckbi.so from the same directory where libnss3.so is loaded (as +# of Firefox 89). +%if 0%{?flatpak} +ln -sf /usr/lib64/libnss3.so %{buildroot}%{_libdir}/libnss3.so +ln -sf /usr/lib64/pkcs11/p11-kit-client.so %{buildroot}%{_libdir}/libnssckbi.so +%endif + +# clean the created bundled rpms if there are any +rm -rf %{_srcrpmdir}/libffi*.src.rpm +find %{_rpmdir} -name "libffi*.rpm" -delete +rm -rf %{_srcrpmdir}/openssl*.src.rpm +find %{_rpmdir} -name "openssl*.rpm" -delete +rm -rf %{_srcrpmdir}/nss*.src.rpm +find %{_rpmdir} -name "nss*.rpm" -delete +rm -rf %{_srcrpmdir}/nspr*.src.rpm +find %{_rpmdir} -name "nspr*.rpm" -delete + +#--------------------------------------------------------------------- %check appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/*.appdata.xml %preun +# is it a final removal? if [ $1 -eq 0 ]; then - rm -rf %{mozappdir}/components - rm -rf %{mozappdir}/extensions - rm -rf %{mozappdir}/plugins - rm -rf %{langpackdir} + %{__rm} -rf %{mozappdir}/components + %{__rm} -rf %{mozappdir}/extensions + %{__rm} -rf %{mozappdir}/plugins fi -%if %{with langpacks_subpkg} -%files -%else +%post +update-desktop-database &> /dev/null || : +touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : + +%postun +update-desktop-database &> /dev/null || : +if [ $1 -eq 0 ] ; then + touch --no-create %{_datadir}/icons/hicolor &>/dev/null + gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : + %{__rm} -rf %{langpackdir} +fi + +%posttrans +gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : + %files -f %{name}.lang -%endif %{_bindir}/firefox %{mozappdir}/firefox %{mozappdir}/firefox-bin -%{mozappdir}/glxtest -%{mozappdir}/vaapitest %doc %{_mandir}/man1/* %dir %{_sysconfdir}/%{name} %dir %{_sysconfdir}/%{name}/* @@ -828,54 +1807,65 @@ fi %dir %{mozappdir} %license %{mozappdir}/LICENSE %{mozappdir}/browser/chrome -%{mozappdir}/browser/defaults/preferences/firefox-anolis-default-prefs.js +%{mozappdir}/defaults/preferences/* +%{mozappdir}/browser/defaults/preferences %{mozappdir}/browser/features/*.xpi %{mozappdir}/distribution/distribution.ini +# That's Windows only %ghost %{mozappdir}/browser/features/aushelper@mozilla.org.xpi -%if %{without langpacks_subpkg} %if %{with langpacks} %dir %{langpackdir} %endif -%endif %{mozappdir}/browser/omni.ja -%{mozappdir}/run-mozilla.sh %{mozappdir}/application.ini %{mozappdir}/pingsender %exclude %{mozappdir}/removed-files -%{_datadir}/icons/hicolor/*/apps/firefox.png +%if 0%{?flatpak} +%{_libdir}/libnss3.so +%{_libdir}/libnssckbi.so +%endif +%{_datadir}/icons/hicolor/16x16/apps/firefox.png +%{_datadir}/icons/hicolor/22x22/apps/firefox.png +%{_datadir}/icons/hicolor/24x24/apps/firefox.png +%{_datadir}/icons/hicolor/256x256/apps/firefox.png +%{_datadir}/icons/hicolor/32x32/apps/firefox.png +%{_datadir}/icons/hicolor/48x48/apps/firefox.png %{_datadir}/icons/hicolor/symbolic/apps/firefox-symbolic.svg -%if %{enable_mozilla_crashreporter} -%{mozappdir}/crashreporter -%{mozappdir}/crashreporter.ini -%{mozappdir}/minidump-analyzer -%{mozappdir}/Throbber-small.gif -%{mozappdir}/browser/crashreporter-override.ini -%endif %{mozappdir}/*.so %{mozappdir}/defaults/pref/channel-prefs.js %{mozappdir}/dependentlibs.list %{mozappdir}/dictionaries %{mozappdir}/omni.ja %{mozappdir}/platform.ini -%{mozappdir}/plugin-container %{mozappdir}/gmp-clearkey %{mozappdir}/fonts/TwemojiMozilla.ttf +%{mozappdir}/glxtest +%{mozappdir}/vaapitest +%ifarch aarch64 +%{mozappdir}/v4l2test +%endif + %if !%{?system_nss} %exclude %{mozappdir}/libnssckbi.so %endif -%if %{build_with_asan} -%{mozappdir}/llvm-symbolizer -%endif -%files x11 -%{_bindir}/firefox-x11 -%{_datadir}/applications/firefox-x11.desktop +%if 0%{?bundle_nss} +%{mozappdir}/bundled/%{_lib}/libfreebl* +%{mozappdir}/bundled/%{_lib}/libnss* +%{mozappdir}/bundled/%{_lib}/libsmime3* +%{mozappdir}/bundled/%{_lib}/libsoftokn* +%{mozappdir}/bundled/%{_lib}/libssl3* +%{mozappdir}/bundled/%{_lib}/libnspr4.so +%{mozappdir}/bundled/%{_lib}/libplc4.so +%{mozappdir}/bundled/%{_lib}/libplds4.so +%endif -%files wayland -%{_bindir}/firefox-wayland -%{_datadir}/applications/firefox-wayland.desktop +#--------------------------------------------------------------------- %changelog +* Tue Oct 22 2024 Kaiqiang Wang - 128.3.1-1 +- update to 128.3.1-1esr + * Mon Aug 12 2024 lidongyue - 115.13.0-1 - update to 115.13.0esr diff --git a/gen_cbindgen-vendor.sh b/gen_cbindgen-vendor.sh deleted file mode 100755 index c2b60f0cf479b8cf59f71107b33e89bc0cec7a71..0000000000000000000000000000000000000000 --- a/gen_cbindgen-vendor.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -set -x - -# Dummy Cargo.toml file with cbindgen dependency -cat > Cargo.toml < -+ -+#include "libavutil/channel_layout.h" -+#include "libavutil/common.h" -+#include "libavutil/opt.h" -+#include "avcodec.h" -+#include "codec_internal.h" -+#include "decode.h" -+ -+#ifdef AACDECODER_LIB_VL0 -+#define FDKDEC_VER_AT_LEAST(vl0, vl1) \ -+ ((AACDECODER_LIB_VL0 > vl0) || \ -+ (AACDECODER_LIB_VL0 == vl0 && AACDECODER_LIB_VL1 >= vl1)) -+#else -+#define FDKDEC_VER_AT_LEAST(vl0, vl1) 0 -+#endif -+ -+#if !FDKDEC_VER_AT_LEAST(2, 5) // < 2.5.10 -+#define AAC_PCM_MAX_OUTPUT_CHANNELS AAC_PCM_OUTPUT_CHANNELS -+#endif -+ -+enum ConcealMethod { -+ CONCEAL_METHOD_SPECTRAL_MUTING = 0, -+ CONCEAL_METHOD_NOISE_SUBSTITUTION = 1, -+ CONCEAL_METHOD_ENERGY_INTERPOLATION = 2, -+ CONCEAL_METHOD_NB, -+}; -+ -+typedef struct FDKAACDecContext { -+ const AVClass *class; -+ HANDLE_AACDECODER handle; -+ uint8_t *decoder_buffer; -+ int decoder_buffer_size; -+ uint8_t *anc_buffer; -+ int conceal_method; -+ int drc_level; -+ int drc_boost; -+ int drc_heavy; -+ int drc_effect; -+ int drc_cut; -+ int album_mode; -+ int level_limit; -+#if FDKDEC_VER_AT_LEAST(2, 5) // 2.5.10 -+ int output_delay_set; -+ int flush_samples; -+ int delay_samples; -+#endif -+ AVChannelLayout downmix_layout; -+} FDKAACDecContext; -+ -+ -+#define DMX_ANC_BUFFSIZE 128 -+#define DECODER_MAX_CHANNELS 8 -+#define DECODER_BUFFSIZE 2048 * sizeof(INT_PCM) -+ -+#define OFFSET(x) offsetof(FDKAACDecContext, x) -+#define AD AV_OPT_FLAG_AUDIO_PARAM | AV_OPT_FLAG_DECODING_PARAM -+static const AVOption fdk_aac_dec_options[] = { -+ { "conceal", "Error concealment method", OFFSET(conceal_method), AV_OPT_TYPE_INT, { .i64 = CONCEAL_METHOD_NOISE_SUBSTITUTION }, CONCEAL_METHOD_SPECTRAL_MUTING, CONCEAL_METHOD_NB - 1, AD, "conceal" }, -+ { "spectral", "Spectral muting", 0, AV_OPT_TYPE_CONST, { .i64 = CONCEAL_METHOD_SPECTRAL_MUTING }, INT_MIN, INT_MAX, AD, "conceal" }, -+ { "noise", "Noise Substitution", 0, AV_OPT_TYPE_CONST, { .i64 = CONCEAL_METHOD_NOISE_SUBSTITUTION }, INT_MIN, INT_MAX, AD, "conceal" }, -+ { "energy", "Energy Interpolation", 0, AV_OPT_TYPE_CONST, { .i64 = CONCEAL_METHOD_ENERGY_INTERPOLATION }, INT_MIN, INT_MAX, AD, "conceal" }, -+ { "drc_boost", "Dynamic Range Control: boost, where [0] is none and [127] is max boost", -+ OFFSET(drc_boost), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 127, AD, NULL }, -+ { "drc_cut", "Dynamic Range Control: attenuation factor, where [0] is none and [127] is max compression", -+ OFFSET(drc_cut), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 127, AD, NULL }, -+ { "drc_level", "Dynamic Range Control: reference level, quantized to 0.25dB steps where [0] is 0dB and [127] is -31.75dB, -1 for auto, and -2 for disabled", -+ OFFSET(drc_level), AV_OPT_TYPE_INT, { .i64 = -1}, -2, 127, AD, NULL }, -+ { "drc_heavy", "Dynamic Range Control: heavy compression, where [1] is on (RF mode) and [0] is off", -+ OFFSET(drc_heavy), AV_OPT_TYPE_INT, { .i64 = -1}, -1, 1, AD, NULL }, -+#if FDKDEC_VER_AT_LEAST(2, 5) // 2.5.10 -+ { "level_limit", "Signal level limiting", -+ OFFSET(level_limit), AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1, AD }, -+#endif -+#if FDKDEC_VER_AT_LEAST(3, 0) // 3.0.0 -+ { "drc_effect","Dynamic Range Control: effect type, where e.g. [0] is none and [6] is general", -+ OFFSET(drc_effect), AV_OPT_TYPE_INT, { .i64 = -1}, -1, 8, AD, NULL }, -+#endif -+#if FDKDEC_VER_AT_LEAST(3, 1) // 3.1.0 -+ { "album_mode","Dynamic Range Control: album mode, where [0] is off and [1] is on", -+ OFFSET(album_mode), AV_OPT_TYPE_INT, { .i64 = -1}, -1, 1, AD, NULL }, -+#endif -+ { "downmix", "Request a specific channel layout from the decoder", OFFSET(downmix_layout), AV_OPT_TYPE_CHLAYOUT, {.str = NULL}, .flags = AD }, -+ { NULL } -+}; -+ -+static const AVClass fdk_aac_dec_class = { -+ .class_name = "libfdk-aac decoder", -+ .item_name = av_default_item_name, -+ .option = fdk_aac_dec_options, -+ .version = LIBAVUTIL_VERSION_INT, -+}; -+ -+static int get_stream_info(AVCodecContext *avctx) -+{ -+ FDKAACDecContext *s = avctx->priv_data; -+ CStreamInfo *info = aacDecoder_GetStreamInfo(s->handle); -+ int channel_counts[0x24] = { 0 }; -+ int i, ch_error = 0; -+ uint64_t ch_layout = 0; -+ -+ if (!info) { -+ av_log(avctx, AV_LOG_ERROR, "Unable to get stream info\n"); -+ return AVERROR_UNKNOWN; -+ } -+ -+ if (info->sampleRate <= 0) { -+ av_log(avctx, AV_LOG_ERROR, "Stream info not initialized\n"); -+ return AVERROR_UNKNOWN; -+ } -+ avctx->sample_rate = info->sampleRate; -+ avctx->frame_size = info->frameSize; -+#if FDKDEC_VER_AT_LEAST(2, 5) // 2.5.10 -+ if (!s->output_delay_set && info->outputDelay) { -+ // Set this only once. -+ s->flush_samples = info->outputDelay; -+ s->delay_samples = info->outputDelay; -+ s->output_delay_set = 1; -+ } -+#endif -+ -+ for (i = 0; i < info->numChannels; i++) { -+ AUDIO_CHANNEL_TYPE ctype = info->pChannelType[i]; -+ if (ctype <= ACT_NONE || ctype >= FF_ARRAY_ELEMS(channel_counts)) { -+ av_log(avctx, AV_LOG_WARNING, "unknown channel type\n"); -+ break; -+ } -+ channel_counts[ctype]++; -+ } -+ av_log(avctx, AV_LOG_DEBUG, -+ "%d channels - front:%d side:%d back:%d lfe:%d top:%d\n", -+ info->numChannels, -+ channel_counts[ACT_FRONT], channel_counts[ACT_SIDE], -+ channel_counts[ACT_BACK], channel_counts[ACT_LFE], -+ channel_counts[ACT_FRONT_TOP] + channel_counts[ACT_SIDE_TOP] + -+ channel_counts[ACT_BACK_TOP] + channel_counts[ACT_TOP]); -+ -+ switch (channel_counts[ACT_FRONT]) { -+ case 4: -+ ch_layout |= AV_CH_LAYOUT_STEREO | AV_CH_FRONT_LEFT_OF_CENTER | -+ AV_CH_FRONT_RIGHT_OF_CENTER; -+ break; -+ case 3: -+ ch_layout |= AV_CH_LAYOUT_STEREO | AV_CH_FRONT_CENTER; -+ break; -+ case 2: -+ ch_layout |= AV_CH_LAYOUT_STEREO; -+ break; -+ case 1: -+ ch_layout |= AV_CH_FRONT_CENTER; -+ break; -+ default: -+ av_log(avctx, AV_LOG_WARNING, -+ "unsupported number of front channels: %d\n", -+ channel_counts[ACT_FRONT]); -+ ch_error = 1; -+ break; -+ } -+ if (channel_counts[ACT_SIDE] > 0) { -+ if (channel_counts[ACT_SIDE] == 2) { -+ ch_layout |= AV_CH_SIDE_LEFT | AV_CH_SIDE_RIGHT; -+ } else { -+ av_log(avctx, AV_LOG_WARNING, -+ "unsupported number of side channels: %d\n", -+ channel_counts[ACT_SIDE]); -+ ch_error = 1; -+ } -+ } -+ if (channel_counts[ACT_BACK] > 0) { -+ switch (channel_counts[ACT_BACK]) { -+ case 3: -+ ch_layout |= AV_CH_BACK_LEFT | AV_CH_BACK_RIGHT | AV_CH_BACK_CENTER; -+ break; -+ case 2: -+ ch_layout |= AV_CH_BACK_LEFT | AV_CH_BACK_RIGHT; -+ break; -+ case 1: -+ ch_layout |= AV_CH_BACK_CENTER; -+ break; -+ default: -+ av_log(avctx, AV_LOG_WARNING, -+ "unsupported number of back channels: %d\n", -+ channel_counts[ACT_BACK]); -+ ch_error = 1; -+ break; -+ } -+ } -+ if (channel_counts[ACT_LFE] > 0) { -+ if (channel_counts[ACT_LFE] == 1) { -+ ch_layout |= AV_CH_LOW_FREQUENCY; -+ } else { -+ av_log(avctx, AV_LOG_WARNING, -+ "unsupported number of LFE channels: %d\n", -+ channel_counts[ACT_LFE]); -+ ch_error = 1; -+ } -+ } -+ -+ av_channel_layout_uninit(&avctx->ch_layout); -+ av_channel_layout_from_mask(&avctx->ch_layout, ch_layout); -+ if (!ch_error && avctx->ch_layout.nb_channels != info->numChannels) { -+ av_log(avctx, AV_LOG_WARNING, "unsupported channel configuration\n"); -+ ch_error = 1; -+ } -+ if (ch_error) -+ avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; -+ -+ return 0; -+} -+ -+static av_cold int fdk_aac_decode_close(AVCodecContext *avctx) -+{ -+ FDKAACDecContext *s = avctx->priv_data; -+ -+ if (s->handle) -+ aacDecoder_Close(s->handle); -+ av_freep(&s->decoder_buffer); -+ av_freep(&s->anc_buffer); -+ -+ return 0; -+} -+ -+static av_cold int fdk_aac_decode_init(AVCodecContext *avctx) -+{ -+ FDKAACDecContext *s = avctx->priv_data; -+ AAC_DECODER_ERROR err; -+ -+ s->handle = aacDecoder_Open(avctx->extradata_size ? TT_MP4_RAW : TT_MP4_ADTS, 1); -+ if (!s->handle) { -+ av_log(avctx, AV_LOG_ERROR, "Error opening decoder\n"); -+ return AVERROR_UNKNOWN; -+ } -+ -+ if (avctx->extradata_size) { -+ if ((err = aacDecoder_ConfigRaw(s->handle, &avctx->extradata, -+ &avctx->extradata_size)) != AAC_DEC_OK) { -+ av_log(avctx, AV_LOG_ERROR, "Unable to set extradata\n"); -+ return AVERROR_INVALIDDATA; -+ } -+ } -+ -+ if ((err = aacDecoder_SetParam(s->handle, AAC_CONCEAL_METHOD, -+ s->conceal_method)) != AAC_DEC_OK) { -+ av_log(avctx, AV_LOG_ERROR, "Unable to set error concealment method\n"); -+ return AVERROR_UNKNOWN; -+ } -+ -+#if FF_API_OLD_CHANNEL_LAYOUT -+FF_DISABLE_DEPRECATION_WARNINGS -+ if (avctx->request_channel_layout) { -+ av_channel_layout_uninit(&s->downmix_layout); -+ av_channel_layout_from_mask(&s->downmix_layout, avctx->request_channel_layout); -+ } -+FF_ENABLE_DEPRECATION_WARNINGS -+#endif -+ if (s->downmix_layout.nb_channels > 0 && -+ s->downmix_layout.order != AV_CHANNEL_ORDER_NATIVE) { -+ int downmix_channels = -1; -+ -+ switch (s->downmix_layout.u.mask) { -+ case AV_CH_LAYOUT_STEREO: -+ case AV_CH_LAYOUT_STEREO_DOWNMIX: -+ downmix_channels = 2; -+ break; -+ case AV_CH_LAYOUT_MONO: -+ downmix_channels = 1; -+ break; -+ default: -+ av_log(avctx, AV_LOG_WARNING, "Invalid downmix option\n"); -+ break; -+ } -+ -+ if (downmix_channels != -1) { -+ if (aacDecoder_SetParam(s->handle, AAC_PCM_MAX_OUTPUT_CHANNELS, -+ downmix_channels) != AAC_DEC_OK) { -+ av_log(avctx, AV_LOG_WARNING, "Unable to set output channels in the decoder\n"); -+ } else { -+ s->anc_buffer = av_malloc(DMX_ANC_BUFFSIZE); -+ if (!s->anc_buffer) { -+ av_log(avctx, AV_LOG_ERROR, "Unable to allocate ancillary buffer for the decoder\n"); -+ return AVERROR(ENOMEM); -+ } -+ if (aacDecoder_AncDataInit(s->handle, s->anc_buffer, DMX_ANC_BUFFSIZE)) { -+ av_log(avctx, AV_LOG_ERROR, "Unable to register downmix ancillary buffer in the decoder\n"); -+ return AVERROR_UNKNOWN; -+ } -+ } -+ } -+ } -+ -+ if (s->drc_boost != -1) { -+ if (aacDecoder_SetParam(s->handle, AAC_DRC_BOOST_FACTOR, s->drc_boost) != AAC_DEC_OK) { -+ av_log(avctx, AV_LOG_ERROR, "Unable to set DRC boost factor in the decoder\n"); -+ return AVERROR_UNKNOWN; -+ } -+ } -+ -+ if (s->drc_cut != -1) { -+ if (aacDecoder_SetParam(s->handle, AAC_DRC_ATTENUATION_FACTOR, s->drc_cut) != AAC_DEC_OK) { -+ av_log(avctx, AV_LOG_ERROR, "Unable to set DRC attenuation factor in the decoder\n"); -+ return AVERROR_UNKNOWN; -+ } -+ } -+ -+ if (s->drc_level != -1) { -+ // This option defaults to -1, i.e. not calling -+ // aacDecoder_SetParam(AAC_DRC_REFERENCE_LEVEL) at all, which defaults -+ // to the level from DRC metadata, if available. The user can set -+ // -drc_level -2, which calls aacDecoder_SetParam( -+ // AAC_DRC_REFERENCE_LEVEL) with a negative value, which then -+ // explicitly disables the feature. -+ if (aacDecoder_SetParam(s->handle, AAC_DRC_REFERENCE_LEVEL, s->drc_level) != AAC_DEC_OK) { -+ av_log(avctx, AV_LOG_ERROR, "Unable to set DRC reference level in the decoder\n"); -+ return AVERROR_UNKNOWN; -+ } -+ } -+ -+ if (s->drc_heavy != -1) { -+ if (aacDecoder_SetParam(s->handle, AAC_DRC_HEAVY_COMPRESSION, s->drc_heavy) != AAC_DEC_OK) { -+ av_log(avctx, AV_LOG_ERROR, "Unable to set DRC heavy compression in the decoder\n"); -+ return AVERROR_UNKNOWN; -+ } -+ } -+ -+#if FDKDEC_VER_AT_LEAST(2, 5) // 2.5.10 -+ // Setting this parameter to -1 enables the auto behaviour in the library. -+ if (aacDecoder_SetParam(s->handle, AAC_PCM_LIMITER_ENABLE, s->level_limit) != AAC_DEC_OK) { -+ av_log(avctx, AV_LOG_ERROR, "Unable to set in signal level limiting in the decoder\n"); -+ return AVERROR_UNKNOWN; -+ } -+#endif -+ -+#if FDKDEC_VER_AT_LEAST(3, 0) // 3.0.0 -+ if (s->drc_effect != -1) { -+ if (aacDecoder_SetParam(s->handle, AAC_UNIDRC_SET_EFFECT, s->drc_effect) != AAC_DEC_OK) { -+ av_log(avctx, AV_LOG_ERROR, "Unable to set DRC effect type in the decoder\n"); -+ return AVERROR_UNKNOWN; -+ } -+ } -+#endif -+ -+#if FDKDEC_VER_AT_LEAST(3, 1) // 3.1.0 -+ if (s->album_mode != -1) { -+ if (aacDecoder_SetParam(s->handle, AAC_UNIDRC_ALBUM_MODE, s->album_mode) != AAC_DEC_OK) { -+ av_log(avctx, AV_LOG_ERROR, "Unable to set album mode in the decoder\n"); -+ return AVERROR_UNKNOWN; -+ } -+ } -+#endif -+ -+ avctx->sample_fmt = AV_SAMPLE_FMT_S16; -+ -+ s->decoder_buffer_size = DECODER_BUFFSIZE * DECODER_MAX_CHANNELS; -+ s->decoder_buffer = av_malloc(s->decoder_buffer_size); -+ if (!s->decoder_buffer) -+ return AVERROR(ENOMEM); -+ -+ return 0; -+} -+ -+static int fdk_aac_decode_frame(AVCodecContext *avctx, AVFrame *frame, -+ int *got_frame_ptr, AVPacket *avpkt) -+{ -+ FDKAACDecContext *s = avctx->priv_data; -+ int ret; -+ AAC_DECODER_ERROR err; -+ UINT valid = avpkt->size; -+ UINT flags = 0; -+ int input_offset = 0; -+ -+ if (avpkt->size) { -+ err = aacDecoder_Fill(s->handle, &avpkt->data, &avpkt->size, &valid); -+ if (err != AAC_DEC_OK) { -+ av_log(avctx, AV_LOG_ERROR, "aacDecoder_Fill() failed: %x\n", err); -+ return AVERROR_INVALIDDATA; -+ } -+ } else { -+#if FDKDEC_VER_AT_LEAST(2, 5) // 2.5.10 -+ /* Handle decoder draining */ -+ if (s->flush_samples > 0) { -+ flags |= AACDEC_FLUSH; -+ } else { -+ return AVERROR_EOF; -+ } -+#else -+ return AVERROR_EOF; -+#endif -+ } -+ -+ err = aacDecoder_DecodeFrame(s->handle, (INT_PCM *) s->decoder_buffer, -+ s->decoder_buffer_size / sizeof(INT_PCM), -+ flags); -+ if (err == AAC_DEC_NOT_ENOUGH_BITS) { -+ ret = avpkt->size - valid; -+ goto end; -+ } -+ if (err != AAC_DEC_OK) { -+ av_log(avctx, AV_LOG_ERROR, -+ "aacDecoder_DecodeFrame() failed: %x\n", err); -+ ret = AVERROR_UNKNOWN; -+ goto end; -+ } -+ -+ if ((ret = get_stream_info(avctx)) < 0) -+ goto end; -+ frame->nb_samples = avctx->frame_size; -+ -+#if FDKDEC_VER_AT_LEAST(2, 5) // 2.5.10 -+ if (flags & AACDEC_FLUSH) { -+ // Only return the right amount of samples at the end; if calling the -+ // decoder with AACDEC_FLUSH, it will keep returning frames indefinitely. -+ frame->nb_samples = FFMIN(s->flush_samples, frame->nb_samples); -+ av_log(s, AV_LOG_DEBUG, "Returning %d/%d delayed samples.\n", -+ frame->nb_samples, s->flush_samples); -+ s->flush_samples -= frame->nb_samples; -+ } else { -+ // Trim off samples from the start to compensate for extra decoder -+ // delay. We could also just adjust the pts, but this avoids -+ // including the extra samples in the output altogether. -+ if (s->delay_samples) { -+ int drop_samples = FFMIN(s->delay_samples, frame->nb_samples); -+ av_log(s, AV_LOG_DEBUG, "Dropping %d/%d delayed samples.\n", -+ drop_samples, s->delay_samples); -+ s->delay_samples -= drop_samples; -+ frame->nb_samples -= drop_samples; -+ input_offset = drop_samples * avctx->ch_layout.nb_channels; -+ if (frame->nb_samples <= 0) -+ return 0; -+ } -+ } -+#endif -+ -+ if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) -+ goto end; -+ -+ memcpy(frame->extended_data[0], s->decoder_buffer + input_offset, -+ avctx->ch_layout.nb_channels * frame->nb_samples * -+ av_get_bytes_per_sample(avctx->sample_fmt)); -+ -+ *got_frame_ptr = 1; -+ ret = avpkt->size - valid; -+ -+end: -+ return ret; -+} -+ -+static av_cold void fdk_aac_decode_flush(AVCodecContext *avctx) -+{ -+ FDKAACDecContext *s = avctx->priv_data; -+ AAC_DECODER_ERROR err; -+ -+ if (!s->handle) -+ return; -+ -+ if ((err = aacDecoder_SetParam(s->handle, -+ AAC_TPDEC_CLEAR_BUFFER, 1)) != AAC_DEC_OK) -+ av_log(avctx, AV_LOG_WARNING, "failed to clear buffer when flushing\n"); -+} -+ -+const FFCodec ff_libfdk_aac_decoder = { -+ .p.name = "libfdk_aac", -+ CODEC_LONG_NAME("Fraunhofer FDK AAC"), -+ .p.type = AVMEDIA_TYPE_AUDIO, -+ .p.id = AV_CODEC_ID_AAC, -+ .priv_data_size = sizeof(FDKAACDecContext), -+ .init = fdk_aac_decode_init, -+ FF_CODEC_DECODE_CB(fdk_aac_decode_frame), -+ .close = fdk_aac_decode_close, -+ .flush = fdk_aac_decode_flush, -+ .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF -+#if FDKDEC_VER_AT_LEAST(2, 5) // 2.5.10 -+ | AV_CODEC_CAP_DELAY -+#endif -+ , -+ .p.priv_class = &fdk_aac_dec_class, -+ .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, -+ .p.wrapper_name = "libfdk", -+}; -diff -up firefox-108.0/media/ffvpx/libavcodec/moz.build.1667096 firefox-108.0/media/ffvpx/libavcodec/moz.build ---- firefox-108.0/media/ffvpx/libavcodec/moz.build.1667096 2022-12-05 21:18:01.000000000 +0100 -+++ firefox-108.0/media/ffvpx/libavcodec/moz.build 2022-12-08 08:29:54.514562328 +0100 -@@ -130,6 +130,12 @@ if CONFIG['MOZ_LIBAV_FFT']: - 'avfft.c', - ] - -+if CONFIG['MOZ_FDK_AAC']: -+ SOURCES += [ -+ 'libfdk-aacdec.c', -+ ] -+ OS_LIBS += CONFIG['MOZ_FDK_AAC_LIBS'] -+ - SYMBOLS_FILE = 'avcodec.symbols' - NoVisibilityFlags() - -diff -up firefox-108.0/toolkit/moz.configure.1667096 firefox-108.0/toolkit/moz.configure ---- firefox-108.0/toolkit/moz.configure.1667096 2022-12-05 21:21:08.000000000 +0100 -+++ firefox-108.0/toolkit/moz.configure 2022-12-08 08:29:54.514562328 +0100 -@@ -2134,6 +2134,15 @@ with only_when(compile_environment): - - set_config("MOZ_SYSTEM_PNG", True, when="--with-system-png") - -+# FDK AAC support -+# ============================================================== -+option('--with-system-fdk-aac', -+ help='Use system libfdk-aac (located with pkgconfig)') -+ -+system_fdk_aac = pkg_check_modules('MOZ_FDK_AAC', 'fdk-aac', -+ when='--with-system-fdk-aac') -+ -+set_config('MOZ_FDK_AAC', depends(when=system_fdk_aac)(lambda: True)) - - # FFmpeg's ffvpx configuration - # ============================================================== diff --git a/mozilla-1669639.patch b/mozilla-1669639.patch deleted file mode 100644 index cd04aabaddc2c7b52eee2649d9753e5746622bdb..0000000000000000000000000000000000000000 --- a/mozilla-1669639.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- firefox-81.0.1/build/mach_initialize.py.old 2020-10-06 14:16:06.212974910 +0200 -+++ firefox-81.0.1/build/mach_initialize.py 2020-10-06 14:19:03.313179557 +0200 -@@ -507,7 +507,10 @@ class ImportHook(object): - # doesn't happen or because it doesn't matter). - if not os.path.exists(module.__file__[:-1]): - if os.path.exists(module.__file__): -- os.remove(module.__file__) -+ try: -+ os.remove(module.__file__) -+ except: -+ pass - del sys.modules[module.__name__] - module = self(name, globals, locals, fromlist, level) - diff --git a/mozilla-bmo1170092.patch b/mozilla-bmo1170092.patch new file mode 100644 index 0000000000000000000000000000000000000000..36d2b00f4ec5758ea8a01b10ff2f104132eda238 --- /dev/null +++ b/mozilla-bmo1170092.patch @@ -0,0 +1,95 @@ +diff -up firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp +--- firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 2023-07-10 21:08:53.000000000 +0200 ++++ firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp 2023-07-17 10:33:23.443355156 +0200 +@@ -263,8 +263,20 @@ nsresult nsReadConfig::openAndEvaluateJS + if (NS_FAILED(rv)) return rv; + + rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile); +- if (NS_FAILED(rv)) return rv; ++ if (NS_FAILED(rv)) { ++ // Look for cfg file in /etc//pref ++ rv = NS_GetSpecialDirectory(NS_APP_PREFS_SYSTEM_CONFIG_DIR, ++ getter_AddRefs(jsFile)); ++ NS_ENSURE_SUCCESS(rv, rv); ++ ++ rv = jsFile->AppendNative(nsLiteralCString("pref")); ++ NS_ENSURE_SUCCESS(rv, rv); ++ rv = jsFile->AppendNative(nsDependentCString(aFileName)); ++ NS_ENSURE_SUCCESS(rv, rv); + ++ rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile); ++ NS_ENSURE_SUCCESS(rv, rv); ++ } + } else { + nsAutoCString location("resource://gre/defaults/autoconfig/"); + location += aFileName; +diff -up firefox-115.0.2/modules/libpref/Preferences.cpp.1170092 firefox-115.0.2/modules/libpref/Preferences.cpp +--- firefox-115.0.2/modules/libpref/Preferences.cpp.1170092 2023-07-10 21:09:00.000000000 +0200 ++++ firefox-115.0.2/modules/libpref/Preferences.cpp 2023-07-17 10:33:23.444355156 +0200 +@@ -4825,6 +4825,9 @@ nsresult Preferences::InitInitialObjects + // + // Thus, in the omni.jar case, we always load app-specific default + // preferences from omni.jar, whether or not `$app == $gre`. ++ // ++ // At very end load configuration from system config location: ++ // - /etc/firefox/pref/*.js + + nsresult rv = NS_ERROR_FAILURE; + UniquePtr find; +diff -up firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp +--- firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp.1170092 2023-07-10 22:57:20.000000000 +0200 ++++ firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp 2023-07-17 10:56:25.309692121 +0200 +@@ -72,6 +72,7 @@ + #endif + #ifdef XP_UNIX + # include ++# include "nsIXULAppInfo.h" + #endif + #ifdef XP_IOS + # include "UIKitDirProvider.h" +@@ -478,6 +479,17 @@ nsXREDirProvider::GetFile(const char* aP + rv = file->AppendNative(nsLiteralCString(PREF_OVERRIDE_DIRNAME)); + NS_ENSURE_SUCCESS(rv, rv); + rv = EnsureDirectoryExists(file); ++ } else if (!strcmp(aProperty, NS_APP_PREFS_SYSTEM_CONFIG_DIR)) { ++ nsCString sysConfigDir = nsLiteralCString("/etc/"); ++ nsCOMPtr appInfo = do_GetService("@mozilla.org/xre/app-info;1"); ++ if (!appInfo) ++ return NS_ERROR_NOT_AVAILABLE; ++ nsCString appName; ++ appInfo->GetName(appName); ++ ToLowerCase(appName); ++ sysConfigDir.Append(appName); ++ NS_NewNativeLocalFile(sysConfigDir, false, getter_AddRefs(file)); ++ rv = EnsureDirectoryExists(file); + } else { + // We don't know anything about this property. Fail without warning, because + // otherwise we'll get too much warning spam due to +@@ -694,6 +706,16 @@ nsXREDirProvider::GetFiles(const char* a + } + #endif + ++ // Add /etc//pref/ directory if it exists ++ nsCOMPtr systemPrefDir; ++ rv = NS_GetSpecialDirectory(NS_APP_PREFS_SYSTEM_CONFIG_DIR, ++ getter_AddRefs(systemPrefDir)); ++ if (NS_SUCCEEDED(rv)) { ++ rv = systemPrefDir->AppendNative(nsLiteralCString("pref")); ++ if (NS_SUCCEEDED(rv)) ++ directories.AppendObject(systemPrefDir); ++ } ++ + rv = NS_NewArrayEnumerator(aResult, directories, NS_GET_IID(nsIFile)); + } else if (!strcmp(aProperty, NS_APP_CHROME_DIR_LIST)) { + // NS_APP_CHROME_DIR_LIST is only used to get default (native) icons +diff -up firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h +--- firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 2023-07-10 21:09:13.000000000 +0200 ++++ firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h 2023-07-17 10:33:23.444355156 +0200 +@@ -58,6 +58,7 @@ + #define NS_APP_PREFS_DEFAULTS_DIR_LIST "PrefDL" + #define NS_APP_PREFS_OVERRIDE_DIR \ + "PrefDOverride" // Directory for per-profile defaults ++#define NS_APP_PREFS_SYSTEM_CONFIG_DIR "PrefSysConf" // Directory with system-wide configuration + + #define NS_APP_USER_PROFILE_50_DIR "ProfD" + #define NS_APP_USER_PROFILE_LOCAL_50_DIR "ProfLD" diff --git a/mozilla-bmo1504834-part1.patch b/mozilla-bmo1504834-part1.patch new file mode 100644 index 0000000000000000000000000000000000000000..f117b897ec5cdbaca6a9789e23a8d13c0e56efdc --- /dev/null +++ b/mozilla-bmo1504834-part1.patch @@ -0,0 +1,86 @@ +diff -up firefox-128.0/gfx/2d/DrawTargetSkia.cpp.mozilla-bmo1504834-part1 firefox-128.0/gfx/2d/DrawTargetSkia.cpp +--- firefox-128.0/gfx/2d/DrawTargetSkia.cpp.mozilla-bmo1504834-part1 2024-06-12 15:02:55.000000000 +0200 ++++ firefox-128.0/gfx/2d/DrawTargetSkia.cpp 2024-06-13 11:36:54.550728034 +0200 +@@ -156,8 +156,8 @@ static IntRect CalculateSurfaceBounds(co + } + + static const int kARGBAlphaOffset = +- SurfaceFormat::A8R8G8B8_UINT32 == SurfaceFormat::B8G8R8A8 ? 3 : 0; +- ++ 0; // Skia is always BGRA SurfaceFormat::A8R8G8B8_UINT32 == ++ // SurfaceFormat::B8G8R8A8 ? 3 : 0; + static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize, + const int32_t aStride, SurfaceFormat aFormat) { + if (aFormat != SurfaceFormat::B8G8R8X8 || aSize.IsEmpty()) { +diff -up firefox-128.0/gfx/2d/Types.h.mozilla-bmo1504834-part1 firefox-128.0/gfx/2d/Types.h +--- firefox-128.0/gfx/2d/Types.h.mozilla-bmo1504834-part1 2024-06-12 15:02:56.000000000 +0200 ++++ firefox-128.0/gfx/2d/Types.h 2024-06-13 11:36:54.551728036 +0200 +@@ -89,18 +89,11 @@ enum class SurfaceFormat : int8_t { + // This represents the unknown format. + UNKNOWN, // TODO: Replace uses with Maybe. + +-// The following values are endian-independent synonyms. The _UINT32 suffix +-// indicates that the name reflects the layout when viewed as a uint32_t +-// value. +-#if MOZ_LITTLE_ENDIAN() ++ // The following values are endian-independent synonyms. The _UINT32 suffix ++ // indicates that the name reflects the layout when viewed as a uint32_t ++ // value. + A8R8G8B8_UINT32 = B8G8R8A8, // 0xAARRGGBB + X8R8G8B8_UINT32 = B8G8R8X8, // 0x00RRGGBB +-#elif MOZ_BIG_ENDIAN() +- A8R8G8B8_UINT32 = A8R8G8B8, // 0xAARRGGBB +- X8R8G8B8_UINT32 = X8R8G8B8, // 0x00RRGGBB +-#else +-# error "bad endianness" +-#endif + + // The following values are OS and endian-independent synonyms. + // +diff -up firefox-128.0/gfx/skia/skia/modules/skcms/skcms.cc.mozilla-bmo1504834-part1 firefox-128.0/gfx/skia/skia/modules/skcms/skcms.cc +--- firefox-128.0/gfx/skia/skia/modules/skcms/skcms.cc.mozilla-bmo1504834-part1 2024-06-12 15:02:57.000000000 +0200 ++++ firefox-128.0/gfx/skia/skia/modules/skcms/skcms.cc 2024-06-13 11:38:45.377835856 +0200 +@@ -31,6 +31,8 @@ + #include + #include + #endif ++#else ++ #define SKCMS_PORTABLE + #endif + + using namespace skcms_private; +@@ -324,20 +326,28 @@ enum { + static uint16_t read_big_u16(const uint8_t* ptr) { + uint16_t be; + memcpy(&be, ptr, sizeof(be)); +-#if defined(_MSC_VER) +- return _byteswap_ushort(be); ++#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ++ return be; + #else +- return __builtin_bswap16(be); ++ #if defined(_MSC_VER) ++ return _byteswap_ushort(be); ++ #else ++ return __builtin_bswap16(be); ++ #endif + #endif + } + + static uint32_t read_big_u32(const uint8_t* ptr) { + uint32_t be; + memcpy(&be, ptr, sizeof(be)); +-#if defined(_MSC_VER) +- return _byteswap_ulong(be); ++#if __BYTE_ORDER == __ORDER_BIG_ENDIAN__ ++ return be; + #else +- return __builtin_bswap32(be); ++ #if defined(_MSC_VER) ++ return _byteswap_ulong(be); ++ #else ++ return __builtin_bswap32(be); ++ #endif + #endif + } + diff --git a/mozilla-bmo1504834-part3.patch b/mozilla-bmo1504834-part3.patch new file mode 100644 index 0000000000000000000000000000000000000000..9c2ece0d8983f026a2951817da278b24996ce29a --- /dev/null +++ b/mozilla-bmo1504834-part3.patch @@ -0,0 +1,17 @@ +# HG changeset patch +# Parent 09cd4ac2cc607e85aa572425b824fbab386af607 +For FF68, AntiAliasing of XULTexts seem to be broken on big endian (s390x). Text and icons of the sandwich-menu to the +right of the address bar, as well as plugin-windows appears transparant, which usually means unreadable (white on white). + +diff --git a/gfx/skia/skia/src/opts/SkBlitMask_opts.h b/gfx/skia/skia/src/opts/SkBlitMask_opts.h +--- a/gfx/skia/skia/src/opts/SkBlitMask_opts.h ++++ b/gfx/skia/skia/src/opts/SkBlitMask_opts.h +@@ -210,6 +210,8 @@ namespace SK_OPTS_NS { + // ~~~> + // a = 1*aa + d(1-1*aa) = aa + d(1-aa) + // c = 0*aa + d(1-1*aa) = d(1-aa) ++ // TODO: Check this for endian-issues! ++ // Do we need to switch 255 to the front for all of those tuples? + return (aa & Sk4px(skvx::byte16{0,0,0,255, 0,0,0,255, 0,0,0,255, 0,0,0,255})) + + d.approxMulDiv255(aa.inv()); + }; diff --git a/mozilla-bmo1636168-fscreen.patch b/mozilla-bmo1636168-fscreen.patch new file mode 100644 index 0000000000000000000000000000000000000000..6ee70ad75ed00ee4eefeb2647c5ff4df66a3eda5 --- /dev/null +++ b/mozilla-bmo1636168-fscreen.patch @@ -0,0 +1,62 @@ +diff -up firefox-128.0/widget/gtk/nsWindow.cpp.mozilla-bmo1636168-fscreen firefox-128.0/widget/gtk/nsWindow.cpp +--- firefox-128.0/widget/gtk/nsWindow.cpp.mozilla-bmo1636168-fscreen 2024-07-04 18:20:43.000000000 +0200 ++++ firefox-128.0/widget/gtk/nsWindow.cpp 2024-07-16 14:54:21.026716936 +0200 +@@ -174,7 +174,8 @@ const gint kEvents = GDK_TOUCHPAD_GESTUR + GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | + GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | + GDK_SMOOTH_SCROLL_MASK | GDK_TOUCH_MASK | GDK_SCROLL_MASK | +- GDK_POINTER_MOTION_MASK | GDK_PROPERTY_CHANGE_MASK; ++ GDK_POINTER_MOTION_MASK | GDK_PROPERTY_CHANGE_MASK | ++ GDK_FOCUS_CHANGE_MASK; + + /* utility functions */ + static bool is_mouse_in_window(GdkWindow* aWindow, gdouble aMouseX, +@@ -430,7 +431,8 @@ nsWindow::nsWindow() + mResizedAfterMoveToRect(false), + mConfiguredClearColor(false), + mGotNonBlankPaint(false), +- mNeedsToRetryCapturingMouse(false) { ++ mNeedsToRetryCapturingMouse(false), ++ mPendingFullscreen(false) { + mWindowType = WindowType::Child; + mSizeConstraints.mMaxSize = GetSafeWindowSize(mSizeConstraints.mMaxSize); + +@@ -5374,6 +5376,19 @@ void nsWindow::OnWindowStateEvent(GtkWid + ClearTransparencyBitmap(); + } + } ++ ++ // Hack to ensure window switched to fullscreen - avoid to fail when starting ++ // in kiosk mode ++ if (mPendingFullscreen && ++ !(aEvent->new_window_state & GDK_WINDOW_STATE_FULLSCREEN)) { ++ LOG( ++ " Window should be fullscreen, but it's not, retrying set to " ++ "fullscreen.\n"); ++ MakeFullScreen(true); ++ } else { ++ LOG(" Window successfully switched to fullscreen, happy now\n"); ++ mPendingFullscreen = false; ++ } + } + + void nsWindow::OnDPIChanged() { +@@ -7526,6 +7541,7 @@ nsresult nsWindow::MakeFullScreen(bool a + + if (mKioskMonitor.isSome()) { + KioskLockOnMonitor(); ++ mPendingFullscreen = true; + } else { + gtk_window_fullscreen(GTK_WINDOW(mShell)); + } +diff -up firefox-128.0/widget/gtk/nsWindow.h.mozilla-bmo1636168-fscreen firefox-128.0/widget/gtk/nsWindow.h +--- firefox-128.0/widget/gtk/nsWindow.h.mozilla-bmo1636168-fscreen 2024-07-04 18:20:43.000000000 +0200 ++++ firefox-128.0/widget/gtk/nsWindow.h 2024-07-16 14:25:51.636952919 +0200 +@@ -758,6 +758,7 @@ class nsWindow final : public nsBaseWidg + * move-to-rect callback we set mMovedAfterMoveToRect/mResizedAfterMoveToRect. + */ + bool mWaitingForMoveToRectCallback : 1; ++ bool mPendingFullscreen : 1; + bool mMovedAfterMoveToRect : 1; + bool mResizedAfterMoveToRect : 1; + diff --git a/mozilla-bmo1670333.patch b/mozilla-bmo1670333.patch new file mode 100644 index 0000000000000000000000000000000000000000..4d29f5d6807188185bddac4c6ee529a105cc5667 --- /dev/null +++ b/mozilla-bmo1670333.patch @@ -0,0 +1,66 @@ +diff -up firefox-128.0/dom/media/mp4/MP4Demuxer.cpp.mozilla-bmo1670333 firefox-128.0/dom/media/mp4/MP4Demuxer.cpp +--- firefox-128.0/dom/media/mp4/MP4Demuxer.cpp.mozilla-bmo1670333 2024-07-04 18:20:27.000000000 +0200 ++++ firefox-128.0/dom/media/mp4/MP4Demuxer.cpp 2024-07-16 13:49:10.475630426 +0200 +@@ -33,6 +33,8 @@ mozilla::LogModule* GetDemuxerLog() { re + DDMOZ_LOG(gMediaDemuxerLog, mozilla::LogLevel::Debug, "::%s: " arg, \ + __func__, ##__VA_ARGS__) + ++extern bool gUseKeyframeFromContainer; ++ + namespace mozilla { + + using TimeUnit = media::TimeUnit; +@@ -419,6 +421,12 @@ already_AddRefed MP4TrackD + [[fallthrough]]; + case H264::FrameType::OTHER: { + bool keyframe = type == H264::FrameType::I_FRAME; ++ if (gUseKeyframeFromContainer) { ++ if (sample->mKeyframe && sample->mKeyframe != keyframe) { ++ sample->mKeyframe = keyframe; ++ } ++ break; ++ } + if (sample->mKeyframe != keyframe) { + NS_WARNING(nsPrintfCString("Frame incorrectly marked as %skeyframe " + "@ pts:%" PRId64 " dur:%" PRId64 +diff -up firefox-128.0/dom/media/platforms/PDMFactory.cpp.mozilla-bmo1670333 firefox-128.0/dom/media/platforms/PDMFactory.cpp +--- firefox-128.0/dom/media/platforms/PDMFactory.cpp.mozilla-bmo1670333 2024-07-04 18:20:26.000000000 +0200 ++++ firefox-128.0/dom/media/platforms/PDMFactory.cpp 2024-07-16 14:16:04.635809901 +0200 +@@ -62,6 +62,8 @@ + + #include + ++bool gUseKeyframeFromContainer = false; ++ + using DecodeSupport = mozilla::media::DecodeSupport; + using DecodeSupportSet = mozilla::media::DecodeSupportSet; + using MediaCodec = mozilla::media::MediaCodec; +@@ -543,7 +545,7 @@ void PDMFactory::CreateRddPDMs() { + #ifdef MOZ_FFMPEG + if (StaticPrefs::media_ffmpeg_enabled() && + StaticPrefs::media_rdd_ffmpeg_enabled() && +- !StartupPDM(FFmpegRuntimeLinker::CreateDecoder())) { ++ !(mFFmpegUsed = StartupPDM(FFmpegRuntimeLinker::CreateDecoder()))) { + mFailureFlags += GetFailureFlagBasedOnFFmpegStatus( + FFmpegRuntimeLinker::LinkStatusCode()); + } +@@ -719,7 +721,7 @@ void PDMFactory::CreateDefaultPDMs() { + StartupPDM(AgnosticDecoderModule::Create(), + StaticPrefs::media_prefer_non_ffvpx()); + +- if (StaticPrefs::media_gmp_decoder_enabled() && ++ if (StaticPrefs::media_gmp_decoder_enabled() && !mFFmpegUsed && + !StartupPDM(GMPDecoderModule::Create(), + StaticPrefs::media_gmp_decoder_preferred())) { + mFailureFlags += DecoderDoctorDiagnostics::Flags::GMPPDMFailedToStartup; +diff -up firefox-128.0/dom/media/platforms/PDMFactory.h.mozilla-bmo1670333 firefox-128.0/dom/media/platforms/PDMFactory.h +--- firefox-128.0/dom/media/platforms/PDMFactory.h.mozilla-bmo1670333 2024-07-04 18:20:26.000000000 +0200 ++++ firefox-128.0/dom/media/platforms/PDMFactory.h 2024-07-16 13:49:10.476630421 +0200 +@@ -98,6 +98,7 @@ class PDMFactory final { + RefPtr mNullPDM; + + DecoderDoctorDiagnostics::FlagsSet mFailureFlags; ++ bool mFFmpegUsed = false; + + friend class RemoteVideoDecoderParent; + static void EnsureInit(); diff --git a/mozilla-bmo1716707-svg.patch b/mozilla-bmo1716707-svg.patch new file mode 100644 index 0000000000000000000000000000000000000000..9c0559caa0d814d9a4966c05ebfe105a1036fe89 --- /dev/null +++ b/mozilla-bmo1716707-svg.patch @@ -0,0 +1,29 @@ +# HG changeset patch +# User M. Sirringhaus +# Date 1645518286 -3600 +# Tue Feb 22 09:24:46 2022 +0100 +# Node ID 81832d035e101471dcf52dd91de287268add7a91 +# Parent 66f7ce16eb4965108687280e5443edd610631efb +imported patch svg-rendering.patch + +diff --git a/image/imgFrame.cpp b/image/imgFrame.cpp +--- a/image/imgFrame.cpp ++++ b/image/imgFrame.cpp +@@ -372,6 +372,17 @@ nsresult imgFrame::InitWithDrawable(gfxD + return NS_ERROR_OUT_OF_MEMORY; + } + ++#if MOZ_BIG_ENDIAN() ++ if (aBackend == gfx::BackendType::SKIA && canUseDataSurface) { ++ // SKIA is lying about what format it returns on big endian ++ for (int ii=0; ii < mRawSurface->GetSize().Height()*mRawSurface->Stride() / 4; ++ii) { ++ uint32_t *vals = (uint32_t*)(mRawSurface->GetData()); ++ uint32_t val = ((vals[ii] << 8) & 0xFF00FF00 ) | ((vals[ii] >> 8) & 0xFF00FF ); ++ vals[ii] = (val << 16) | (val >> 16); ++ } ++ } ++#endif ++ + if (!canUseDataSurface) { + // We used an offscreen surface, which is an "optimized" surface from + // imgFrame's perspective. diff --git a/mozilla-bmo1716707-swizzle.patch b/mozilla-bmo1716707-swizzle.patch new file mode 100644 index 0000000000000000000000000000000000000000..bb375602ee6bbee92af32401a963ebd354488daa --- /dev/null +++ b/mozilla-bmo1716707-swizzle.patch @@ -0,0 +1,34 @@ +# HG changeset patch +# User M. Sirringhaus +# Date 1645518286 -3600 +# Tue Feb 22 09:24:46 2022 +0100 +# Node ID 494640792b4677f6462e95b90a54a4e22aeb738b +# Parent 81832d035e101471dcf52dd91de287268add7a91 +imported patch one_swizzle_to_rule_them_all.patch + +Index: firefox-102.0/gfx/webrender_bindings/RenderCompositorSWGL.cpp +=================================================================== +--- firefox-102.0.orig/gfx/webrender_bindings/RenderCompositorSWGL.cpp ++++ firefox-102.0/gfx/webrender_bindings/RenderCompositorSWGL.cpp +@@ -7,6 +7,7 @@ + #include "RenderCompositorSWGL.h" + + #include "mozilla/gfx/Logging.h" ++#include "mozilla/gfx/Swizzle.h" + #include "mozilla/widget/CompositorWidget.h" + + #ifdef MOZ_WIDGET_GTK +@@ -235,6 +237,13 @@ void RenderCompositorSWGL::CommitMappedB + } + mDT->Flush(); + ++#if MOZ_BIG_ENDIAN() ++ // One swizzle to rule them all. ++ gfx::SwizzleData(mMappedData, mMappedStride, gfx::SurfaceFormat::B8G8R8A8, ++ mMappedData, mMappedStride, gfx::SurfaceFormat::A8R8G8B8, ++ mDT->GetSize()); ++#endif ++ + // Done with the DT. Hand it back to the widget and clear out any trace of it. + mWidget->EndRemoteDrawingInRegion(mDT, mDirtyRegion); + mDirtyRegion.SetEmpty(); diff --git a/mozilla-bmo1789216-disable-av1.patch b/mozilla-bmo1789216-disable-av1.patch new file mode 100644 index 0000000000000000000000000000000000000000..c7fe0c31671059cf070046290076cf1a5a017fb1 --- /dev/null +++ b/mozilla-bmo1789216-disable-av1.patch @@ -0,0 +1,73 @@ +diff -up firefox-128.0/media/ffvpx/libavcodec/allcodecs.c.mozilla-bmo1789216-disable-av1 firefox-128.0/media/ffvpx/libavcodec/allcodecs.c +--- firefox-128.0/media/ffvpx/libavcodec/allcodecs.c.mozilla-bmo1789216-disable-av1 2024-06-12 15:03:01.000000000 +0200 ++++ firefox-128.0/media/ffvpx/libavcodec/allcodecs.c 2024-06-13 11:44:10.637215674 +0200 +@@ -764,8 +764,11 @@ extern const FFCodec ff_libaribb24_decod + extern const FFCodec ff_libcelt_decoder; + extern const FFCodec ff_libcodec2_encoder; + extern const FFCodec ff_libcodec2_decoder; ++#if CONFIG_MOZ_AV1 + extern const FFCodec ff_libdav1d_decoder; + extern const FFCodec ff_libdavs2_decoder; ++extern const FFCodec ff_libuavs3d_decoder; ++#endif + extern const FFCodec ff_libfdk_aac_encoder; + extern const FFCodec ff_libfdk_aac_decoder; + extern const FFCodec ff_libgsm_encoder; +@@ -793,7 +796,6 @@ extern const FFCodec ff_libspeex_decoder + extern const FFCodec ff_libsvtav1_encoder; + extern const FFCodec ff_libtheora_encoder; + extern const FFCodec ff_libtwolame_encoder; +-extern const FFCodec ff_libuavs3d_decoder; + extern const FFCodec ff_libvo_amrwbenc_encoder; + extern const FFCodec ff_libvorbis_encoder; + extern const FFCodec ff_libvorbis_decoder; +diff -up firefox-128.0/media/ffvpx/libavcodec/codec_list.c.mozilla-bmo1789216-disable-av1 firefox-128.0/media/ffvpx/libavcodec/codec_list.c +--- firefox-128.0/media/ffvpx/libavcodec/codec_list.c.mozilla-bmo1789216-disable-av1 2024-06-13 11:40:12.668924117 +0200 ++++ firefox-128.0/media/ffvpx/libavcodec/codec_list.c 2024-06-13 11:44:41.411253372 +0200 +@@ -11,12 +11,14 @@ static const FFCodec * const codec_list[ + #if CONFIG_MP3_DECODER + &ff_mp3_decoder, + #endif ++#if CONFIG_MOZ_AV1 + #if CONFIG_LIBDAV1D + &ff_libdav1d_decoder, + #endif + #if CONFIG_AV1_DECODER + &ff_av1_decoder, + #endif ++#endif + #if CONFIG_LIBVORBIS_DECODER + &ff_libvorbis_decoder, + #endif +diff -up firefox-128.0/media/ffvpx/libavcodec/moz.build.mozilla-bmo1789216-disable-av1 firefox-128.0/media/ffvpx/libavcodec/moz.build +--- firefox-128.0/media/ffvpx/libavcodec/moz.build.mozilla-bmo1789216-disable-av1 2024-06-13 11:40:12.669924118 +0200 ++++ firefox-128.0/media/ffvpx/libavcodec/moz.build 2024-06-13 11:45:22.867304151 +0200 +@@ -94,7 +94,6 @@ if not CONFIG['MOZ_FFVPX_AUDIOONLY']: + 'imgconvert.c', + 'libaom.c', + 'libaomenc.c', +- 'libdav1d.c', + 'libvpxdec.c', + 'libvpxenc.c', + 'mathtables.c', +@@ -119,10 +118,16 @@ if not CONFIG['MOZ_FFVPX_AUDIOONLY']: + 'vp9recon.c', + 'vpx_rac.c', + ] +- USE_LIBS += [ +- 'dav1d', +- 'media_libdav1d_asm', +- ] ++ if CONFIG['MOZ_AV1']: ++ USE_LIBS += [ ++ 'dav1d', ++ 'media_libdav1d_asm', ++ ] ++ SOURCES += [ ++ 'libdav1d.c', ++ ] ++ ++ + if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": + LOCAL_INCLUDES += ['/media/mozva'] + SOURCES += [ diff --git a/mozilla-bmo849632.patch b/mozilla-bmo849632.patch new file mode 100644 index 0000000000000000000000000000000000000000..913d6bcdd9a061dde2e70f3cb775844b8370fc16 --- /dev/null +++ b/mozilla-bmo849632.patch @@ -0,0 +1,26 @@ +# HG changeset patch +# Parent 3de59fe1b8708c01e134ce698c4232b8a854f617 +Problem: webGL sites are displayed in the wrong color (usually blue-ish) +Solution: Problem is with skia once again. Output of webgl seems endian-correct, but skia only + knows how to deal with little endian. + So we swizzle the output of webgl after reading it from readpixels() +Note: This does not fix all webGL sites, but is a step in the right direction + +Index: firefox-115.0/gfx/gl/GLContext.h +=================================================================== +--- firefox-115.0.orig/gfx/gl/GLContext.h ++++ firefox-115.0/gfx/gl/GLContext.h +@@ -1560,6 +1560,13 @@ class GLContext : public GenericAtomicRe + BEFORE_GL_CALL; + mSymbols.fReadPixels(x, y, width, height, format, type, pixels); + OnSyncCall(); ++#if MOZ_BIG_ENDIAN() ++ uint8_t* itr = (uint8_t*)pixels; ++ for (GLsizei i = 0; i < width * height; i++) { ++ NativeEndian::swapToLittleEndianInPlace((uint32_t*)itr, 1); ++ itr += 4; ++ } ++#endif + AFTER_GL_CALL; + mHeavyGLCallsSinceLastFlush = true; + } diff --git a/mozilla-bmo998749.patch b/mozilla-bmo998749.patch new file mode 100644 index 0000000000000000000000000000000000000000..50e22b56946ea07de821e7827a61bd4701c54f14 --- /dev/null +++ b/mozilla-bmo998749.patch @@ -0,0 +1,29 @@ +# HG changeset patch +# User msirringhaus@suse.de +# Date 1583738770 -3600 +# Mon Mar 09 08:26:10 2020 +0100 +# Node ID 34676feac1a542e409e22acf5b98735f8313b1ce +# Parent 506857dace0a08d1c9685e3ac264646590b3e27f +[mq]: mozilla-bmo998749.patch + +diff -r 506857dace0a -r 34676feac1a5 gfx/2d/FilterProcessing.h +--- a/gfx/2d/FilterProcessing.h Fri Feb 28 12:31:51 2020 +0100 ++++ b/gfx/2d/FilterProcessing.h Mon Mar 09 08:26:10 2020 +0100 +@@ -13,10 +13,17 @@ + namespace mozilla { + namespace gfx { + ++#if MOZ_BIG_ENDIAN() ++const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_B = 3; ++const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_G = 2; ++const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_R = 1; ++const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_A = 0; ++#else + const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_B = 0; + const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_G = 1; + const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_R = 2; + const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_A = 3; ++#endif + + class FilterProcessing { + public: diff --git a/node-stdout-nonblocking-wrapper b/node-stdout-nonblocking-wrapper index b2814b8d40392ffe76c24d7676c91a353a23b76a..7dfb5139696f14fc0f673f1e2f7e880990f20664 100755 --- a/node-stdout-nonblocking-wrapper +++ b/node-stdout-nonblocking-wrapper @@ -1,2 +1,2 @@ #!/bin/sh -exec /usr/bin/node "$@" 2>&1 | cat - +exec node "$@" 2>&1 | cat - diff --git a/nss-setup-flags-env.inc b/nss-setup-flags-env.inc new file mode 100644 index 0000000000000000000000000000000000000000..334bfaaa574c358a9e7fdec2192d6542d7eaaee4 --- /dev/null +++ b/nss-setup-flags-env.inc @@ -0,0 +1,7 @@ +sed -i 's@%{bundled_install_path}@%{_buildrootdir}%{bundled_install_path}@g' %{_buildrootdir}%{bundled_install_path}/%{_lib}/pkgconfig/nss*.pc + +export LDFLAGS="-L%{_buildrootdir}%{bundled_install_path}/%{_lib} $LDFLAGS" +export LDFLAGS="-Wl,-rpath,%{bundled_install_path}/%{_lib} $LDFLAGS" +export LDFLAGS="-Wl,-rpath-link,%{_buildrootdir}%{bundled_install_path}/%{_lib} $LDFLAGS" +export PKG_CONFIG_PATH=%{_buildrootdir}%{bundled_install_path}/%{_lib}/pkgconfig +export PATH="%{_buildrootdir}%{bundled_install_path}/bin:$PATH" diff --git a/pgo.patch b/pgo.patch deleted file mode 100644 index 8d996a21ea1c5096cca62c52ac297710c30aeee9..0000000000000000000000000000000000000000 --- a/pgo.patch +++ /dev/null @@ -1,115 +0,0 @@ -diff -up firefox-112.0/build/moz.configure/lto-pgo.configure.pgo firefox-112.0/build/moz.configure/lto-pgo.configure ---- firefox-112.0/build/moz.configure/lto-pgo.configure.pgo 2023-04-06 17:27:38.000000000 +0200 -+++ firefox-112.0/build/moz.configure/lto-pgo.configure 2023-04-06 21:27:32.537089073 +0200 -@@ -247,8 +247,8 @@ def lto( - cflags.append("-flto") - ldflags.append("-flto") - else: -- cflags.append("-flto=thin") -- ldflags.append("-flto=thin") -+ cflags.append("-flto") -+ ldflags.append("-flto") - - if target.os == "Android" and value == "cross": - # Work around https://github.com/rust-lang/rust/issues/90088 -@@ -264,7 +264,7 @@ def lto( - if value == "full": - cflags.append("-flto") - else: -- cflags.append("-flto=thin") -+ cflags.append("-flto") - # With clang-cl, -flto can only be used with -c or -fuse-ld=lld. - # AC_TRY_LINKs during configure don't have -c, so pass -fuse-ld=lld. - cflags.append("-fuse-ld=lld") -diff -up firefox-112.0/build/pgo/profileserver.py.pgo firefox-112.0/build/pgo/profileserver.py ---- firefox-112.0/build/pgo/profileserver.py.pgo 2023-04-06 17:27:40.000000000 +0200 -+++ firefox-112.0/build/pgo/profileserver.py 2023-04-06 21:29:33.772294479 +0200 -@@ -11,7 +11,7 @@ import subprocess - import sys - - import mozcrash --from mozbuild.base import BinaryNotFoundException, MozbuildObject -+from mozbuild.base import BinaryNotFoundException, MozbuildObject, BuildEnvironmentNotFoundException - from mozfile import TemporaryDirectory - from mozhttpd import MozHttpd - from mozprofile import FirefoxProfile, Preferences -@@ -87,9 +87,22 @@ if __name__ == "__main__": - locations = ServerLocations() - locations.add_host(host="127.0.0.1", port=PORT, options="primary,privileged") - -- old_profraw_files = glob.glob("*.profraw") -- for f in old_profraw_files: -- os.remove(f) -+ using_gcc = False -+ try: -+ if build.config_environment.substs.get('CC_TYPE') == 'gcc': -+ using_gcc = True -+ except BuildEnvironmentNotFoundException: -+ pass -+ -+ if using_gcc: -+ for dirpath, _, filenames in os.walk('.'): -+ for f in filenames: -+ if f.endswith('.gcda'): -+ os.remove(os.path.join(dirpath, f)) -+ else: -+ old_profraw_files = glob.glob('*.profraw') -+ for f in old_profraw_files: -+ os.remove(f) - - with TemporaryDirectory() as profilePath: - # TODO: refactor this into mozprofile -@@ -213,6 +226,10 @@ if __name__ == "__main__": - print("Firefox exited successfully, but produced a crashreport") - sys.exit(1) - -+ print('Copying profile data....') -+ os.system('pwd'); -+ os.system('tar cf profdata.tar.gz `find . -name "*.gcda"`; cd ..; tar xf instrumented/profdata.tar.gz;'); -+ - llvm_profdata = env.get("LLVM_PROFDATA") - if llvm_profdata: - profraw_files = glob.glob("*.profraw") -diff -up firefox-112.0/build/unix/mozconfig.unix.pgo firefox-112.0/build/unix/mozconfig.unix ---- firefox-112.0/build/unix/mozconfig.unix.pgo 2023-04-06 21:27:32.537089073 +0200 -+++ firefox-112.0/build/unix/mozconfig.unix 2023-04-06 21:28:54.987949124 +0200 -@@ -4,6 +4,15 @@ if [ -n "$FORCE_GCC" ]; then - CC="$MOZ_FETCHES_DIR/gcc/bin/gcc" - CXX="$MOZ_FETCHES_DIR/gcc/bin/g++" - -+ if [ -n "$MOZ_PGO" ]; then -+ if [ -z "$USE_ARTIFACT" ]; then -+ ac_add_options --enable-lto -+ fi -+ export AR="$topsrcdir/gcc/bin/gcc-ar" -+ export NM="$topsrcdir/gcc/bin/gcc-nm" -+ export RANLIB="$topsrcdir/gcc/bin/gcc-ranlib" -+ fi -+ - # We want to make sure we use binutils and other binaries in the tooltool - # package. - mk_add_options "export PATH=$MOZ_FETCHES_DIR/gcc/bin:$MOZ_FETCHES_DIR/binutils/bin:$PATH" -diff -up firefox-112.0/extensions/spellcheck/src/moz.build.pgo firefox-112.0/extensions/spellcheck/src/moz.build ---- firefox-112.0/extensions/spellcheck/src/moz.build.pgo 2023-04-06 17:27:41.000000000 +0200 -+++ firefox-112.0/extensions/spellcheck/src/moz.build 2023-04-06 21:27:32.537089073 +0200 -@@ -28,3 +28,5 @@ EXPORTS.mozilla += [ - "mozInlineSpellChecker.h", - "mozSpellChecker.h", - ] -+ -+CXXFLAGS += ['-fno-devirtualize'] -diff -up firefox-112.0/toolkit/components/terminator/nsTerminator.cpp.pgo firefox-112.0/toolkit/components/terminator/nsTerminator.cpp ---- firefox-112.0/toolkit/components/terminator/nsTerminator.cpp.pgo 2023-04-06 17:27:57.000000000 +0200 -+++ firefox-112.0/toolkit/components/terminator/nsTerminator.cpp 2023-04-06 21:27:32.538089108 +0200 -@@ -460,6 +460,11 @@ void nsTerminator::StartWatchdog() { - } - #endif - -+ // Disable watchdog for PGO train builds - writting profile information at -+ // exit may take time and it is better to make build hang rather than -+ // silently produce poorly performing binary. -+ crashAfterMS = INT32_MAX; -+ - UniquePtr options(new Options()); - // crashAfterTicks is guaranteed to be > 0 as - // crashAfterMS >= ADDITIONAL_WAIT_BEFORE_CRASH_MS >> HEARTBEAT_INTERVAL_MS diff --git a/print-error-reftest b/print-error-reftest deleted file mode 100755 index 7a58c1cbfd425fa8e8a478544f56a6353db13a4f..0000000000000000000000000000000000000000 --- a/print-error-reftest +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/bash -# Print reftest failures and compose them to html - -TEST_DIR="$1" -TEST_FLAVOUR="$2" -OUTPUT_FILE="failures-reftest$TEST_FLAVOUR.html" - -grep --text -e "REFTEST TEST-UNEXPECTED-PASS" -e "REFTEST TEST-UNEXPECTED-FAIL" -e "IMAGE 1 (TEST):" -e "IMAGE 2 (REFERENCE):" $TEST_DIR/reftest$TEST_FLAVOUR 2>&1 > $OUTPUT_FILE -sed -i '/REFTEST IMAGE 1/a ">' $OUTPUT_FILE -sed -i '/REFTEST IMAGE 2/a ">

' $OUTPUT_FILE -sed -i '/REFTEST TEST/a
' $OUTPUT_FILE -sed -i -e 's/^REFTEST IMAGE 1 (TEST): /&1 > failures-mochitest$TEST_FLAVOUR.txt -grep --text -e " FAIL " -e " TIMEOUT " $TEST_DIR/xpcshell$TEST_FLAVOUR 2>&1 > failures-xpcshell$TEST_FLAVOUR.txt -grep --text -e "REFTEST TEST-UNEXPECTED-PASS" -e "REFTEST TEST-UNEXPECTED-FAIL" $TEST_DIR/reftest$TEST_FLAVOUR 2>&1 > failures-reftest$TEST_FLAVOUR.txt diff --git a/print_failures b/print_failures deleted file mode 100755 index bc92b0c81ef66d7f74081a5915a91f44141126d5..0000000000000000000000000000000000000000 --- a/print_failures +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/bash -# Analyze and print test failures - -export TEST_DIR="test_results" - -#./print-errors $TEST_DIR "" -./print-errors $TEST_DIR "-wr" -#./print-error-reftest $TEST_DIR "" -./print-error-reftest $TEST_DIR "-wr" diff --git a/print_results b/print_results deleted file mode 100755 index d0b13079e5aba27e52b3dbbc808c6734f4356b42..0000000000000000000000000000000000000000 --- a/print_results +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/bash -# Analyze and print general test results - -export TEST_DIR="test_results" - -echo "Test results" -#echo "Basic compositor" -#./psummary $TEST_DIR "" -echo "WebRender" -./psummary $TEST_DIR "-wr" diff --git a/process-official-tarball b/process-official-tarball new file mode 100755 index 0000000000000000000000000000000000000000..e3aabb9507297cb1ef7c058252886887291b05d2 --- /dev/null +++ b/process-official-tarball @@ -0,0 +1,28 @@ +#!/bin/sh + +rm -rf ./process-tarball-dir +mkdir ./process-tarball-dir +tar -xJf $1 --directory process-tarball-dir + +rm -vf ./process-tarball-dir/*/testing/web-platform/tests/conformance-checkers/html-rdfa/0030-isvalid.html +rm -vf ./process-tarball-dir/*/testing/web-platform/tests/conformance-checkers/html-rdfa/0008-isvalid.html +rm -vf ./process-tarball-dir/*/testing/web-platform/tests/conformance-checkers/html-rdfalite/0030-isvalid.html +rm -vf ./process-tarball-dir/*/testing/web-platform/tests/css/css-ui/support/cursors/woolly-64.svg +rm -vf ./process-tarball-dir/*/testing/web-platform/tests/css/css-ui/support/cursors/woolly.svg +rm -vf ./process-tarball-dir/*/testing/web-platform/tests/conformance-checkers/html-rdfa/0230-novalid.html +rm -vf ./process-tarball-dir/*/testing/web-platform/tests/conformance-checkers/html-rdfa/0231-isvalid.html +rm -vf ./process-tarball-dir/*/layout/inspector/tests/chrome/test_fontVariationsAPI.css +# A forbidden code point was found in: +rm -vf ./process-tarball-dir/*/mobile/android/android-components/components/browser/errorpages/src/main/res/values-ar/strings.xml +rm -vf ./process-tarball-dir/*/mobile/android/android-components/components/feature/addons/src/main/res/values-ur/strings.xml +rm -vf ./process-tarball-dir/*/third_party/webkit/PerformanceTests/Speedometer3/resources/editors/dist/assets/codemirror-521de7ab.js +rm -vf ./process-tarball-dir/*/third_party/python/pip/pip-24.0.dist-info/AUTHORS.txt + +processed_tarball=${1/source/processed-source} + +cd ./process-tarball-dir +tar -cf - ./* | xz -9 -T 0 -f > $processed_tarball +mv $processed_tarball .. +cd .. + +rm -rf ./process-tarball-dir diff --git a/psummary b/psummary deleted file mode 100755 index f64fc8fec6a512213a232f549fe05968983aeaba..0000000000000000000000000000000000000000 --- a/psummary +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/bash -# Analyze and print specialized (basic/webrender) test results - -TEST_DIR=$1 -TEST_FLAVOUR=$2 - -MPASS=`grep "TEST_END: Test OK" $TEST_DIR/mochitest$TEST_FLAVOUR | wc -l` -MERR=`grep "TEST_END: Test ERROR" $TEST_DIR/mochitest$TEST_FLAVOUR | wc -l` -MUNEX=`grep "TEST-UNEXPECTED-FAIL" $TEST_DIR/mochitest$TEST_FLAVOUR | wc -l` -echo "Mochitest PASSED: $MPASS FAILED: $MERR UNEXPECTED-FAILURES: $MUNEX" - -XPCPASS=`grep --text "Expected results:" $TEST_DIR/xpcshell$TEST_FLAVOUR | cut -d ' ' -f 3` -XPCFAIL=`grep --text "Unexpected results:" $TEST_DIR/xpcshell$TEST_FLAVOUR | cut -d ' ' -f 3` -echo "XPCShell: PASSED: $XPCPASS FAILED: $XPCFAIL" - -CRPASS=`grep "REFTEST INFO | Successful:" $TEST_DIR/crashtest$TEST_FLAVOUR | cut -d ' ' -f 5` -CRFAIL=`grep "^REFTEST INFO | Unexpected:" $TEST_DIR/crashtest$TEST_FLAVOUR | cut -d ' ' -f 5` -echo "Crashtest: PASSED: $CRPASS FAILED: $CRFAIL" - -RFPASS=`grep --text "REFTEST INFO | Successful:" $TEST_DIR/reftest$TEST_FLAVOUR | cut -d ' ' -f 5` -RFUN=`grep --text "^REFTEST INFO | Unexpected:" $TEST_DIR/reftest$TEST_FLAVOUR | cut -d ' ' -f 5` -RFKNOWN=`grep --text "REFTEST INFO | Known problems:" $TEST_DIR/reftest$TEST_FLAVOUR | cut -d ' ' -f 6` -echo "Reftest: PASSED: $RFPASS FAILED: $RFUN Known issues: $RFKNOWN" diff --git a/rhbz-2131158-webrtc-nss-fix.patch b/rhbz-2131158-webrtc-nss-fix.patch new file mode 100644 index 0000000000000000000000000000000000000000..78b458d051e320d8ebe88e78ce752ac24b0f4708 --- /dev/null +++ b/rhbz-2131158-webrtc-nss-fix.patch @@ -0,0 +1,25 @@ +diff -up firefox-102.3.0/third_party/libsrtp/src/crypto/cipher/aes_gcm_nss.c.webrtc-fix firefox-102.3.0/third_party/libsrtp/src/crypto/cipher/aes_gcm_nss.c +--- firefox-102.3.0/third_party/libsrtp/src/crypto/cipher/aes_gcm_nss.c.webrtc-fix 2022-10-04 18:58:30.563683229 +0200 ++++ firefox-102.3.0/third_party/libsrtp/src/crypto/cipher/aes_gcm_nss.c 2022-10-04 18:58:44.583652963 +0200 +@@ -293,7 +293,7 @@ static srtp_err_status_t srtp_aes_gcm_ns + + int rv; + SECItem param = { siBuffer, (unsigned char *)&c->params, +- sizeof(CK_GCM_PARAMS) }; ++ sizeof(CK_NSS_GCM_PARAMS) }; + if (encrypt) { + rv = PK11_Encrypt(c->key, CKM_AES_GCM, ¶m, buf, enc_len, + *enc_len + 16, buf, *enc_len); +diff -up firefox-102.3.0/third_party/libsrtp/src/crypto/include/aes_gcm.h.webrtc-fix firefox-102.3.0/third_party/libsrtp/src/crypto/include/aes_gcm.h +--- firefox-102.3.0/third_party/libsrtp/src/crypto/include/aes_gcm.h.webrtc-fix 2022-10-04 18:59:16.635583764 +0200 ++++ firefox-102.3.0/third_party/libsrtp/src/crypto/include/aes_gcm.h 2022-10-04 18:59:31.848550924 +0200 +@@ -101,7 +101,7 @@ typedef struct { + uint8_t iv[12]; + uint8_t aad[MAX_AD_SIZE]; + int aad_size; +- CK_GCM_PARAMS params; ++ CK_NSS_GCM_PARAMS params; + uint8_t tag[16]; + } srtp_aes_gcm_ctx_t; + +diff -up firefox-102.3.0/third_party/prio/prio/encrypt.c.webrtc-fix firefox-102.3.0/third_party/prio/prio/encrypt.c diff --git a/run-tests-wayland b/run-tests-wayland deleted file mode 100755 index 95ee6f62de25c3f62775129da6088bf53df8b80f..0000000000000000000000000000000000000000 --- a/run-tests-wayland +++ /dev/null @@ -1,80 +0,0 @@ -#!/usr/bin/bash -# usage: run-tests-wayland [test flavour] - -set -x - -RUN_XPCSHELL_TEST=1 -RUN_REFTEST=1 -RUN_MOCHITEST=1 -RUN_CRASHTEST=1 - -while (( "$#" )); do - SELECTED_TEST=$1 - if [ "$SELECTED_TEST" = "xpcshell" ] ; then - RUN_XPCSHELL_TEST=1 - elif [ "$SELECTED_TEST" = "reftest" ] ; then - RUN_REFTEST=1 - elif [ "$SELECTED_TEST" = "mochitest" ] ; then - RUN_MOCHITEST=1 - elif [ "$SELECTED_TEST" = "crashtest" ] ; then - RUN_CRASHTEST=1 - fi - shift -done - -export MACH_USE_SYSTEM_PYTHON=1 -export MOZ_NODE_PATH=/usr/bin/node - -MOCHITEST_PARAMS="--timeout 1 --chunk-by-dir 4" -TEST_DIR="test_results" -mkdir $TEST_DIR - -env | grep "DISPLAY" - -# Fix for system nss -ln -s /usr/bin/certutil objdir/dist/bin/certutil -ln -s /usr/bin/pk12util objdir/dist/bin/pk12util - -NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`" - -export MOZ_ENABLE_WAYLAND=1 - -if [ $RUN_XPCSHELL_TEST -ne 0 ] ; then -# ./mach xpcshell-test 2>&1 | cat - | tee $TEST_DIR/xpcshell - ./mach xpcshell-test --enable-webrender 2>&1 | cat - | tee $TEST_DIR/xpcshell-wr - sleep 60 -fi - -# Basic render testing -export TEST_PARAMS="--setpref reftest.ignoreWindowSize=true --setpref widget.wayland.test-workarounds.enabled=true" -#export TEST_FLAVOUR="" -#if [ $RUN_REFTEST -ne 0 ] ; then -# ./mach reftest --marionette localhost:$(($(($RANDOM))+2000)) $TEST_PARAMS 2>&1 | tee $TEST_DIR/reftest$TEST_FLAVOUR -#fi -#if [ $RUN_CRASHTEST -ne 0 ] ; then -# ./mach crashtest --marionette localhost:$(($(($RANDOM))+2000)) $TEST_PARAMS 2>&1 | tee $TEST_DIR/crashtest$TEST_FLAVOUR -#fi -#if [ $RUN_MOCHITEST -ne 0 ] ; then -# ./mach mochitest --marionette localhost:$(($(($RANDOM))+2000)) $MOCHITEST_PARAMS $TEST_PARAMS 2>&1 | tee $TEST_DIR/mochitest$TEST_FLAVOUR -#fi - -# WebRender testing -export TEST_PARAMS="--enable-webrender $TEST_PARAMS" -export TEST_FLAVOUR="-wr" -# Use dom/base/test or dom/base/test/chrome for short version -export MOCHITEST_DIR='dom' -if [ $RUN_REFTEST -ne 0 ] ; then - ./mach reftest $TEST_PARAMS 2>&1 | tee $TEST_DIR/reftest$TEST_FLAVOUR - sleep 60 -fi -if [ $RUN_CRASHTEST -ne 0 ] ; then - ./mach crashtest $TEST_PARAMS 2>&1 | tee $TEST_DIR/crashtest$TEST_FLAVOUR - sleep 60 -fi -if [ $RUN_MOCHITEST -ne 0 ] ; then - ./mach mochitest $MOCHITEST_DIR $MOCHITEST_PARAMS $TEST_PARAMS 2>&1 | tee $TEST_DIR/mochitest$TEST_FLAVOUR - sleep 60 -fi - -rm -f objdir/dist/bin/certutil -rm -f objdir/dist/bin/pk12util diff --git a/run-tests-x11 b/run-tests-x11 deleted file mode 100755 index 1d4a1c0a5720638b723680fba06b605c466eb3d4..0000000000000000000000000000000000000000 --- a/run-tests-x11 +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/bash -set -x - -export MACH_USE_SYSTEM_PYTHON=1 -export MOZ_NODE_PATH=/usr/bin/node -export X_PARAMS="-screen 0 1600x1200x24" -export MOCHITEST_PARAMS="--timeout 1 --chunk-by-dir 4" -export TEST_DIR="test_results" - -# Fix for system nss -ln -s /usr/bin/certutil objdir/dist/bin/certutil -ln -s /usr/bin/pk12util objdir/dist/bin/pk12util - -NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`" - -# Basic render testing -export TEST_PARAMS="" -export TEST_FLAVOUR="" -#xvfb-run -s "$X_PARAMS" -n 91 ./mach xpcshell-test --sequential $TEST_PARAMS 2>&1 | cat - | tee $TEST_DIR/xpcshell -#xvfb-run -s "$X_PARAMS" -n 92 ./mach reftest --marionette localhost:$(($(($RANDOM))+2000)) $TEST_PARAMS 2>&1 | tee $TEST_DIR/reftest$TEST_FLAVOUR -#xvfb-run -s "$X_PARAMS" -n 93 ./mach crashtest --marionette localhost:$(($(($RANDOM))+2000)) $TEST_PARAMS 2>&1 | tee $TEST_DIR/crashtest$TEST_FLAVOUR -#xvfb-run -s "$X_PARAMS" -n 94 ./mach mochitest --marionette localhost:$(($(($RANDOM))+2000)) $MOCHITEST_PARAMS $TEST_PARAMS 2>&1 | tee $TEST_DIR/mochitest$TEST_FLAVOUR - -# WebRender testing -export TEST_PARAMS="--enable-webrender $TEST_PARAMS" -export TEST_FLAVOUR="-wr" -#xvfb-run -s "$X_PARAMS" -n 95 ./mach xpcshell-test --sequential $TEST_PARAMS 2>&1 | cat - | tee $TEST_DIR/xpcshell-wr -#sleep 60 -#xvfb-run -s "$X_PARAMS" -n 96 ./mach reftest $TEST_PARAMS 2>&1 | tee $TEST_DIR/reftest$TEST_FLAVOUR -#sleep 60 -#xvfb-run -s "$X_PARAMS" -n 97 ./mach crashtest $TEST_PARAMS 2>&1 | tee $TEST_DIR/crashtest$TEST_FLAVOUR -#sleep 60 -#export DISPLAY=:0 -#./mach mochitest dom/base/test/ $MOCHITEST_PARAMS $TEST_PARAMS 2>&1 | tee $TEST_DIR/mochitest$TEST_FLAVOUR -export DISPLAY=:98 -xvfb-run -s "$X_PARAMS" -n 98 ./mach mochitest dom/base/test/ $MOCHITEST_PARAMS $TEST_PARAMS 2>&1 | tee $TEST_DIR/mochitest$TEST_FLAVOUR - -rm -f objdir/dist/bin/certutil -rm -f objdir/dist/bin/pk12util diff --git a/run-wayland-compositor b/run-wayland-compositor deleted file mode 100755 index 0480ed21663e161598d2ceae63734987537d7f0f..0000000000000000000000000000000000000000 --- a/run-wayland-compositor +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/bash -# Run wayland compositor and set WAYLAND_DISPLAY env variable - -set -x - -echo export DESKTOP_SESSION=gnome > $HOME/.xsessionrc -echo export XDG_CURRENT_DESKTOP=GNOME > $HOME/.xsessionrc -echo export XDG_SESSION_TYPE=wayland >> $HOME/.xsessionrc - -# Turn off the screen saver and screen locking -gsettings set org.gnome.desktop.screensaver idle-activation-enabled false -gsettings set org.gnome.desktop.screensaver lock-enabled false -gsettings set org.gnome.desktop.screensaver lock-delay 3600 - -# Disable the screen saver -# This starts the gnome-keyring-daemon with an unlocked login keyring. libsecret uses this to -# store secrets. Firefox uses libsecret to store a key that protects sensitive information like -# credit card numbers. -if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then - # if not found, launch a new one - eval `dbus-launch --sh-syntax` -fi -eval `echo '' | /usr/bin/gnome-keyring-daemon -r -d --unlock --components=secrets` - -if [ -z "$XDG_RUNTIME_DIR" ]; then - export XDG_RUNTIME_DIR=$HOME -fi - -. xvfb-run -s "-screen 0 1600x1200x24" -n 80 mutter --display=:80 --wayland --nested & -export DISPLAY=:80 - -if [ -z "$WAYLAND_DISPLAY" ] ; then - export WAYLAND_DISPLAY=wayland-0 -else - export WAYLAND_DISPLAY=wayland-1 -fi -sleep 10 -retry_count=0 -max_retries=5 -until [ $retry_count -gt $max_retries ]; do - if [ -S "$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY" ]; then - retry_count=$(($max_retries + 1)) - else - retry_count=$(($retry_count + 1)) - echo "Waiting for Mutter, retry: $retry_count" - sleep 2 - fi -done - -env | grep "DISPLAY" diff --git a/shebang-build.patch b/shebang-build.patch deleted file mode 100644 index 9ade86c309334fabd6fe4771209f54e1f0493d06..0000000000000000000000000000000000000000 --- a/shebang-build.patch +++ /dev/null @@ -1,9 +0,0 @@ -diff -up firefox-73.0/build/unix/run-mozilla.sh.old firefox-73.0/build/unix/run-mozilla.sh ---- firefox-73.0/build/unix/run-mozilla.sh.old 2020-02-12 09:58:00.150895904 +0100 -+++ firefox-73.0/build/unix/run-mozilla.sh 2020-02-12 09:58:06.505860696 +0100 -@@ -1,4 +1,4 @@ --#!/bin/sh -+#!/usr/bin/sh - # - # 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 diff --git a/testing.sh b/testing.sh new file mode 100755 index 0000000000000000000000000000000000000000..ef868ecc4a37391d6cad0f52b74b9065926e3517 --- /dev/null +++ b/testing.sh @@ -0,0 +1,260 @@ +#!/usr/bin/bash + + +function run_tests_wayland { + # usage: run-tests-wayland [test flavour] + + set -x + + RUN_XPCSHELL_TEST=1 + RUN_REFTEST=1 + RUN_MOCHITEST=1 + RUN_CRASHTEST=1 + + while (( "$#" )); do + SELECTED_TEST=$1 + if [ "$SELECTED_TEST" = "xpcshell" ] ; then + RUN_XPCSHELL_TEST=1 + elif [ "$SELECTED_TEST" = "reftest" ] ; then + RUN_REFTEST=1 + elif [ "$SELECTED_TEST" = "mochitest" ] ; then + RUN_MOCHITEST=1 + elif [ "$SELECTED_TEST" = "crashtest" ] ; then + RUN_CRASHTEST=1 + fi + shift + done + + export MACH_USE_SYSTEM_PYTHON=1 + export MOZ_NODE_PATH=/usr/bin/node + + MOCHITEST_PARAMS="--timeout 1 --chunk-by-dir 4" + TEST_DIR="test_results" + mkdir $TEST_DIR + + env | grep "DISPLAY" + + # Fix for system nss + ln -s /usr/bin/certutil objdir/dist/bin/certutil + ln -s /usr/bin/pk12util objdir/dist/bin/pk12util + + NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`" + + export MOZ_ENABLE_WAYLAND=1 + + if [ $RUN_XPCSHELL_TEST -ne 0 ] ; then + # ./mach xpcshell-test 2>&1 | cat - | tee $TEST_DIR/xpcshell + ./mach xpcshell-test --enable-webrender 2>&1 | cat - | tee $TEST_DIR/xpcshell-wr + sleep 60 + fi + + # Basic render testing + export TEST_PARAMS="--setpref reftest.ignoreWindowSize=true --setpref widget.wayland.test-workarounds.enabled=true" + #export TEST_FLAVOUR="" + #if [ $RUN_REFTEST -ne 0 ] ; then + # ./mach reftest --marionette localhost:$(($(($RANDOM))+2000)) $TEST_PARAMS 2>&1 | tee $TEST_DIR/reftest$TEST_FLAVOUR + #fi + #if [ $RUN_CRASHTEST -ne 0 ] ; then + # ./mach crashtest --marionette localhost:$(($(($RANDOM))+2000)) $TEST_PARAMS 2>&1 | tee $TEST_DIR/crashtest$TEST_FLAVOUR + #fi + #if [ $RUN_MOCHITEST -ne 0 ] ; then + # ./mach mochitest --marionette localhost:$(($(($RANDOM))+2000)) $MOCHITEST_PARAMS $TEST_PARAMS 2>&1 | tee $TEST_DIR/mochitest$TEST_FLAVOUR + #fi + + # WebRender testing + export TEST_PARAMS="--enable-webrender $TEST_PARAMS" + export TEST_FLAVOUR="-wr" + # Use dom/base/test or dom/base/test/chrome for short version + export MOCHITEST_DIR='dom' + if [ $RUN_REFTEST -ne 0 ] ; then + ./mach reftest $TEST_PARAMS 2>&1 | tee $TEST_DIR/reftest$TEST_FLAVOUR + sleep 60 + fi + if [ $RUN_CRASHTEST -ne 0 ] ; then + ./mach crashtest $TEST_PARAMS 2>&1 | tee $TEST_DIR/crashtest$TEST_FLAVOUR + sleep 60 + fi + if [ $RUN_MOCHITEST -ne 0 ] ; then + ./mach mochitest $MOCHITEST_DIR $MOCHITEST_PARAMS $TEST_PARAMS 2>&1 | tee $TEST_DIR/mochitest$TEST_FLAVOUR + sleep 60 + fi + + rm -f objdir/dist/bin/certutil + rm -f objdir/dist/bin/pk12util +} + +function run_tests_x11() { + set -x + + export MACH_USE_SYSTEM_PYTHON=1 + export MOZ_NODE_PATH=/usr/bin/node + export X_PARAMS="-screen 0 1600x1200x24" + export MOCHITEST_PARAMS="--timeout 1 --chunk-by-dir 4" + export TEST_DIR="test_results" + + # Fix for system nss + ln -s /usr/bin/certutil objdir/dist/bin/certutil + ln -s /usr/bin/pk12util objdir/dist/bin/pk12util + + NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`" + + # Basic render testing + export TEST_PARAMS="" + export TEST_FLAVOUR="" + #xvfb-run -s "$X_PARAMS" -n 91 ./mach xpcshell-test --sequential $TEST_PARAMS 2>&1 | cat - | tee $TEST_DIR/xpcshell + #xvfb-run -s "$X_PARAMS" -n 92 ./mach reftest --marionette localhost:$(($(($RANDOM))+2000)) $TEST_PARAMS 2>&1 | tee $TEST_DIR/reftest$TEST_FLAVOUR + #xvfb-run -s "$X_PARAMS" -n 93 ./mach crashtest --marionette localhost:$(($(($RANDOM))+2000)) $TEST_PARAMS 2>&1 | tee $TEST_DIR/crashtest$TEST_FLAVOUR + #xvfb-run -s "$X_PARAMS" -n 94 ./mach mochitest --marionette localhost:$(($(($RANDOM))+2000)) $MOCHITEST_PARAMS $TEST_PARAMS 2>&1 | tee $TEST_DIR/mochitest$TEST_FLAVOUR + + # WebRender testing + export TEST_PARAMS="--enable-webrender $TEST_PARAMS" + export TEST_FLAVOUR="-wr" + #xvfb-run -s "$X_PARAMS" -n 95 ./mach xpcshell-test --sequential $TEST_PARAMS 2>&1 | cat - | tee $TEST_DIR/xpcshell-wr + #sleep 60 + #xvfb-run -s "$X_PARAMS" -n 96 ./mach reftest $TEST_PARAMS 2>&1 | tee $TEST_DIR/reftest$TEST_FLAVOUR + #sleep 60 + #xvfb-run -s "$X_PARAMS" -n 97 ./mach crashtest $TEST_PARAMS 2>&1 | tee $TEST_DIR/crashtest$TEST_FLAVOUR + #sleep 60 + #export DISPLAY=:0 + #./mach mochitest dom/base/test/ $MOCHITEST_PARAMS $TEST_PARAMS 2>&1 | tee $TEST_DIR/mochitest$TEST_FLAVOUR + export DISPLAY=:98 + xvfb-run -s "$X_PARAMS" -n 98 ./mach mochitest dom/base/test/ $MOCHITEST_PARAMS $TEST_PARAMS 2>&1 | tee $TEST_DIR/mochitest$TEST_FLAVOUR + + rm -f objdir/dist/bin/certutil + rm -f objdir/dist/bin/pk12util +} + +function run_wayland_compositor() { + # Run wayland compositor and set WAYLAND_DISPLAY env variable + set -x + + echo export DESKTOP_SESSION=gnome > $HOME/.xsessionrc + echo export XDG_CURRENT_DESKTOP=GNOME > $HOME/.xsessionrc + echo export XDG_SESSION_TYPE=wayland >> $HOME/.xsessionrc + + # Turn off the screen saver and screen locking + gsettings set org.gnome.desktop.screensaver idle-activation-enabled false + gsettings set org.gnome.desktop.screensaver lock-enabled false + gsettings set org.gnome.desktop.screensaver lock-delay 3600 + + # Disable the screen saver + # This starts the gnome-keyring-daemon with an unlocked login keyring. libsecret uses this to + # store secrets. Firefox uses libsecret to store a key that protects sensitive information like + # credit card numbers. + if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then + # if not found, launch a new one + eval `dbus-launch --sh-syntax` + fi + eval `echo '' | /usr/bin/gnome-keyring-daemon -r -d --unlock --components=secrets` + + if [ -z "$XDG_RUNTIME_DIR" ]; then + export XDG_RUNTIME_DIR=$HOME + fi + + . xvfb-run -s "-screen 0 1600x1200x24" -n 80 mutter --display=:80 --wayland --nested & + export DISPLAY=:80 + + if [ -z "$WAYLAND_DISPLAY" ] ; then + export WAYLAND_DISPLAY=wayland-0 + else + export WAYLAND_DISPLAY=wayland-1 + fi + sleep 10 + retry_count=0 + max_retries=5 + until [ $retry_count -gt $max_retries ]; do + if [ -S "$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY" ]; then + retry_count=$(($max_retries + 1)) + else + retry_count=$(($retry_count + 1)) + echo "Waiting for Mutter, retry: $retry_count" + sleep 2 + fi + done + + env | grep "DISPLAY" +} + +function print_error_reftest() { + # Print reftest failures and compose them to html + + TEST_DIR="$1" + TEST_FLAVOUR="$2" + OUTPUT_FILE="failures-reftest$TEST_FLAVOUR.html" + + grep --text -e "REFTEST TEST-UNEXPECTED-PASS" -e "REFTEST TEST-UNEXPECTED-FAIL" -e "IMAGE 1 (TEST):" -e "IMAGE 2 (REFERENCE):" $TEST_DIR/reftest$TEST_FLAVOUR 2>&1 > $OUTPUT_FILE + sed -i '/REFTEST IMAGE 1/a ">' $OUTPUT_FILE + sed -i '/REFTEST IMAGE 2/a ">

' $OUTPUT_FILE + sed -i '/REFTEST TEST/a
' $OUTPUT_FILE + sed -i -e 's/^REFTEST IMAGE 1 (TEST): /&1 > failures-mochitest$TEST_FLAVOUR.txt + grep --text -e " FAIL " -e " TIMEOUT " $TEST_DIR/xpcshell$TEST_FLAVOUR 2>&1 > failures-xpcshell$TEST_FLAVOUR.txt + grep --text -e "REFTEST TEST-UNEXPECTED-PASS" -e "REFTEST TEST-UNEXPECTED-FAIL" $TEST_DIR/reftest$TEST_FLAVOUR 2>&1 > failures-reftest$TEST_FLAVOUR.txt +} + +function print_failures() { + #!/usr/bin/bash + # Analyze and print test failures + + export TEST_DIR="test_results" + + #./print-errors $TEST_DIR "" + print_errors $TEST_DIR "-wr" + #./print-error-reftest $TEST_DIR "" + print_error_reftest $TEST_DIR "-wr" +} + +function psummary() { + #!/usr/bin/bash + # Analyze and print specialized (basic/webrender) test results + + TEST_DIR=$1 + TEST_FLAVOUR=$2 + + MPASS=`grep "TEST_END: Test OK" $TEST_DIR/mochitest$TEST_FLAVOUR | wc -l` + MERR=`grep "TEST_END: Test ERROR" $TEST_DIR/mochitest$TEST_FLAVOUR | wc -l` + MUNEX=`grep "TEST-UNEXPECTED-FAIL" $TEST_DIR/mochitest$TEST_FLAVOUR | wc -l` + echo "Mochitest PASSED: $MPASS FAILED: $MERR UNEXPECTED-FAILURES: $MUNEX" + + XPCPASS=`grep --text "Expected results:" $TEST_DIR/xpcshell$TEST_FLAVOUR | cut -d ' ' -f 3` + XPCFAIL=`grep --text "Unexpected results:" $TEST_DIR/xpcshell$TEST_FLAVOUR | cut -d ' ' -f 3` + echo "XPCShell: PASSED: $XPCPASS FAILED: $XPCFAIL" + + CRPASS=`grep "REFTEST INFO | Successful:" $TEST_DIR/crashtest$TEST_FLAVOUR | cut -d ' ' -f 5` + CRFAIL=`grep "^REFTEST INFO | Unexpected:" $TEST_DIR/crashtest$TEST_FLAVOUR | cut -d ' ' -f 5` + echo "Crashtest: PASSED: $CRPASS FAILED: $CRFAIL" + + RFPASS=`grep --text "REFTEST INFO | Successful:" $TEST_DIR/reftest$TEST_FLAVOUR | cut -d ' ' -f 5` + RFUN=`grep --text "^REFTEST INFO | Unexpected:" $TEST_DIR/reftest$TEST_FLAVOUR | cut -d ' ' -f 5` + RFKNOWN=`grep --text "REFTEST INFO | Known problems:" $TEST_DIR/reftest$TEST_FLAVOUR | cut -d ' ' -f 6` + echo "Reftest: PASSED: $RFPASS FAILED: $RFUN Known issues: $RFKNOWN" +} + +function print_results() { + #!/usr/bin/bash + # Analyze and print general test results + + export TEST_DIR="test_results" + + echo "Test results" + #echo "Basic compositor" + #./psummary $TEST_DIR "" + echo "WebRender" + psummary $TEST_DIR "-wr" +} + +set -x +first=$1 +shift +$first $* + diff --git a/zh-CN.xpi b/zh-CN.xpi deleted file mode 100644 index b71600dca1881c01567a468ac79d657349c6569b..0000000000000000000000000000000000000000 Binary files a/zh-CN.xpi and /dev/null differ diff --git a/zh-TW.xpi b/zh-TW.xpi deleted file mode 100644 index e6d0c7f577744cab13a8a07f24d1b5aaff050da4..0000000000000000000000000000000000000000 Binary files a/zh-TW.xpi and /dev/null differ