Compare commits

...
Sign in to create a new pull request.

137 commits

Author SHA1 Message Date
Antonio Trande
9bb5104466 Release 140.7.0 2026-01-13 22:43:09 +01:00
Antonio Trande
76cf83117e Release 140.6.0 2025-12-11 12:04:28 +01:00
Antonio Trande
877e1d3494 Release 140.5.0 2025-11-12 21:11:37 +01:00
Gordon Messmer
e815651b48 Use rpm's native resource tunable to limit parallelism.
rpm 4.19 and newer have built-in tunable settings to limit
parallel tasks which make %constrain_build redundant.

See BZ#2404624
2025-10-16 14:32:32 -07:00
Antonio Trande
5c7dc50188 Release 140.4.0 2025-10-14 23:05:52 +02:00
Yaakov Selkowitz
c7108086b8 BuildRequires: mesa-libEGL
This too is needed to run mutter during the build. At least for flatpaks,
libglvnd-egl does not pull in mesa-libEGL, so that the latter can be
shipped as an extension rather than in the runtime.
2025-10-12 01:17:59 -04:00
Antonio Trande
67543ab854 Fix Wayland compositor script 2025-09-21 19:55:28 +02:00
Antonio Trande
12620ddec7 Set wayland environment 2025-09-21 18:24:21 +02:00
Antonio Trande
601940babc Remove kill command 2025-09-21 14:32:41 +02:00
Antonio Trande
d0a50452ed Remove useless BR package 2025-09-21 12:43:50 +02:00
Antonio Trande
949daab63a Modify build command | Use constraints-build 2025-09-21 12:33:51 +02:00
Antonio Trande
0082e2e455 Fix PGO macro 2025-09-20 22:42:50 +02:00
Antonio Trande
dd1ff590fb Kill MUTTER_PID 2025-09-20 22:35:10 +02:00
Antonio Trande
bac41826b0 Add compiler-rt19 BR 2025-09-20 20:58:43 +02:00
Antonio Trande
e6c13d721b Re-organize PGO+Wayland builds 2025-09-20 20:18:52 +02:00
Antonio Trande
92658a248f Use clang19+LTO+PGO 2025-09-20 17:33:19 +02:00
Antonio Trande
e6e6897ae4 Remove useless flag on s390x 2025-09-20 16:42:30 +02:00
Antonio Trande
d6489329de Apply Patch7 2025-09-20 16:18:15 +02:00
Antonio Trande
31e9323f9e Remove old patches| Remove --frozen Cargo flag 2025-09-20 16:02:19 +02:00
Antonio Trande
c66c28f8d6 Upload bundled cbindgen 2025-09-20 12:51:27 +02:00
Antonio Trande
6d1f9dcda7 Reload and use bundled cbindgen 2025-09-20 12:47:24 +02:00
Antonio Trande
043fa72cdd Release 140.3.0 2025-09-19 22:29:00 +02:00
Dominik 'Rathann' Mierzejewski
3e712e05b7 Drop unused yasm build dependency
See https://fedoraproject.org/wiki/Changes/DeprecateYASM .
2025-08-20 22:50:53 +02:00
Antonio Trande
35e9900c2f Exclude -mtls-dialect=gnu2 on x86_64 2025-08-20 18:11:26 +02:00
Antonio Trande
b2f3ed3cfe Release 128.14.0 2025-08-20 15:32:52 +02:00
Fedora Release Engineering
e42fb72424 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-24 17:32:58 +00:00
Antonio Trande
b37045e88b Release 125.13.0 2025-07-23 17:00:39 +02:00
Antonio Trande
4b1c39c522 Use system cbindgen 2025-06-27 21:18:30 +02:00
Antonio Trande
b3959a29a6 Update launcher 2025-06-27 21:10:31 +02:00
Antonio Trande
7da8ecdbdf Fix launcher 2025-06-27 16:12:21 +02:00
Antonio Trande
ae640ad661 Set linker flags 2025-06-27 13:38:59 +02:00
Antonio Trande
ad3a48a2cd Add v4l2test file for ARM64 and RISC-V 2025-06-27 12:41:37 +02:00
Antonio Trande
21b334e53d Fix Epoch 2025-06-26 23:02:01 +02:00
Antonio Trande
e5a96df9ac Remove directory 2025-06-26 19:23:54 +02:00
Antonio Trande
4ce587552c Remove old configuration option 2025-06-26 17:44:25 +02:00
Antonio Trande
1d3f9fe61f Set CXXFLAGS without -fpermissive 2025-06-26 16:53:04 +02:00
Antonio Trande
b371002413 Release 128.12.0 2025-06-26 00:06:00 +02:00
Antonio Trande
d0d7b964dd Release 115.24.0 2025-05-31 22:32:51 +02:00
Antonio Trande
8aad7d0904 Release 115.23.1 2025-05-22 22:05:07 +02:00
Antonio Trande
fb5b31aab6 Release 115.23.0 2025-05-06 23:17:18 +02:00
Antonio Trande
ce1f8ffead Upload regenerated built-in cbindgen 2025-04-20 20:04:13 +02:00
Antonio Trande
3d7f8e2c51 Release 115.22.0 2025-04-04 21:51:37 +02:00
Antonio Trande
825d8dec97 Release 115.21.0 2025-03-04 21:53:38 +01:00
Antonio Trande
a0a6912cb2 Set compilers 2025-02-08 15:50:22 +01:00
Antonio Trande
af5987fea7 Set compilers 2025-02-08 14:20:56 +01:00
Antonio Trande
1eb82a1139 Release 115.20.0| Fix clang build 2025-02-07 22:56:46 +01:00
Antonio Trande
153e450492 Fix clang build 2025-02-07 22:54:59 +01:00
Antonio Trande
2e95703156 Release 115.20.0 2025-02-07 22:31:07 +01:00
Antonio Trande
ed541732a6 Fix swgl build with GCC 15 2025-02-02 00:22:15 +01:00
Antonio Trande
a3963a5de6 Re-testing with GCC 2025-02-01 18:52:16 +01:00
Antonio Trande
48814c0971 Fix mozilla #1917964 2025-01-31 23:38:19 +01:00
Antonio Trande
576f5d64b7 Fix mozilla #1912663 2025-01-31 23:09:40 +01:00
Antonio Trande
f143d871a0 Try to use system cbindgen 2025-01-31 22:45:10 +01:00
Antonio Trande
9f2bc0fee0 Update to cbindgen-0.28.0 2025-01-31 22:22:46 +01:00
Antonio Trande
8b817ce118 Return to clang 2025-01-31 21:25:18 +01:00
Antonio Trande
8e609e5072 Try to build with GCC 2025-01-23 19:25:51 +01:00
Antonio Trande
5f9ce733b7 Fix GCC15 builds 2025-01-17 12:55:09 +01:00
Fedora Release Engineering
08d4b41252 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-17 06:56:06 +00:00
Antonio Trande
6b3f455d4f Revert commit 20f4fff 2025-01-11 17:37:27 +01:00
Antonio Trande
a4318122ca Drop some obsolete conditions 2025-01-11 14:44:19 +01:00
Antonio Trande
20f4ffff07 Require icu on s390x only 2025-01-10 21:52:34 +01:00
Antonio Trande
8c80932926 Disable PGO at all 2025-01-10 21:44:42 +01:00
Antonio Trande
e29d8d6633 Disable PGO at all 2025-01-10 21:40:17 +01:00
Antonio Trande
8aae756e78 Add missing BR pciutils-libs 2025-01-10 12:20:44 +01:00
Antonio Trande
6895b2796e Release 115.19.0 2025-01-09 20:56:24 +01:00
Antonio Trande
2b058c423b Fix CVE-2024-11693 CVE-2024-11697 CVE-2024-11692 2024-12-08 23:29:54 +01:00
Antonio Trande
1ef3ae8034 Release 115.18.0 2024-11-27 21:54:43 +01:00
Antonio Trande
3633261b4a Release 115.17.0 2024-11-01 14:59:13 +01:00
Antonio Trande
7d71541527 Release 115.16.1 2024-10-10 19:49:04 +02:00
Neal Gompa
fafac2aff6 Rebuild for ffmpeg 7 (again) 2024-10-05 08:49:45 -04:00
Antonio Trande
c7d064dc50 Release 115.16.0 2024-10-03 20:13:58 +02:00
Antonio Trande
4d1fcc9520 Merge #5 Correct SPDX license 2024-09-26 16:28:56 +00:00
Miroslav Suchý
2a863ee65d Correct SPDX license
The file COPYING-BSD.txt matches BSD-4-Clause-UC

This is part of https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_4

If there will be no comments in two weeks, I will merge this.
2024-09-26 10:02:37 +00:00
Dominik 'Rathann' Mierzejewski
f2c1a42b4b Rebuilt for FFmpeg 7 2024-09-25 15:00:35 +02:00
Antonio Trande
624743709a Rebuild for F40 build issue 2024-09-07 23:02:14 +02:00
Antonio Trande
a59842c0bf Release 115.15.0 2024-09-05 22:03:20 +02:00
Antonio Trande
037bec18a5 Release 115.14.0 2024-08-09 23:44:37 +02:00
Fedora Release Engineering
d1b5817a4c Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-18 10:10:32 +00:00
Yaakov Selkowitz
ff2c86d612 Fix flatpak build
pkg-config is part of the flatpak buildroot and is therefore in /usr even
when building for /app.  The default llvm/clang are in the runtime, and the
compat packages are only built in /app when needed at runtime for apps
(currently, only 15), otherwise the buildroot version suffices here.
Therefore, the location of these dependencies needs to be detected.
2024-07-09 20:11:05 -04:00
Antonio Trande
21f3241219 Release 115.13.0 2024-07-09 23:42:56 +02:00
Antonio Trande
95b0a6923f Fix NSS version for Fedora 39 2024-06-12 22:16:17 +02:00
Antonio Trande
f040fc0ab8 Remove obsolete patch 2024-06-11 22:27:42 +02:00
Antonio Trande
94f70e9d2b Release 115.2.0 2024-06-11 22:26:02 +02:00
Antonio Trande
a075ca1fec Fix clang path in no-clang builds 2024-05-19 00:49:55 +02:00
Antonio Trande
654d5d1027 Install clang BR 2024-05-19 00:24:38 +02:00
Antonio Trande
49a8658099 Fix clang path in Fedora 39 2024-05-18 18:33:53 +02:00
Antonio Trande
397e2ef821 Use clang on Fedora 40+ only 2024-05-18 17:39:20 +02:00
Antonio Trande
0d3a82d783 Use always Patch55 2024-05-17 22:07:03 +02:00
Antonio Trande
84112ccf17 Fix disable-eme option 2024-05-15 18:44:33 +02:00
Antonio Trande
00bb264463 Rename the file .cargo/config 2024-05-15 15:44:39 +02:00
Antonio Trande
07431212fd Release 115.11.0 | Exclude 32-bit architectures 2024-05-15 14:36:40 +02:00
Antonio Trande
1499cbc50f Fix libdir typo 2024-04-24 22:05:40 +02:00
Antonio Trande
1f2f0134d4 Fix conditional clang options 2024-04-24 21:39:43 +02:00
Antonio Trande
199a717b3c Rebuild in Fedora 40+ with clang 2024-04-24 21:34:07 +02:00
Antonio Trande
8384f31f4f Rebuild in Fedora 40+ with clang 2024-04-24 21:30:19 +02:00
Antonio Trande
0008664082 Release 115.10.0 2024-04-17 23:27:44 +02:00
Antonio Trande
e223a3cc93 Debug build 2024-04-10 22:57:42 +02:00
Antonio Trande
63e2e731de Merge branch 'main' into f40 2024-03-23 21:08:16 +01:00
Antonio Trande
331ec3a977 Update to cbindgen-0.26.0 2024-03-22 21:23:11 +01:00
Antonio Trande
bf05a6d1c9 Release 115.9.0 2024-03-22 14:10:18 +01:00
Jiri Vanek
f6f8cc4499 Rebuilt for java-21-openjdk as system jdk
https://fedoraproject.org/wiki/Changes/Java21
2024-03-02 16:42:03 +01:00
Jiri Vanek
be99293fa4 Rebuilt for java-21-openjdk as system jdk
https://fedoraproject.org/wiki/Changes/Java21
2024-02-27 14:48:01 +01:00
Antonio Trande
66b640dd22 Release 115.8.0 2024-02-20 20:43:26 +01:00
Pete Walter
925cffd0e5 Rebuild for libvpx 1.14.x 2024-02-08 00:02:33 +00:00
Antonio Trande
cde761c2a4 Fix README file 2024-01-27 12:33:34 +01:00
Antonio Trande
fc1527d129 Update README file 2024-01-27 12:22:46 +01:00
Antonio Trande
5ceaf96295 Release 115.7.0 2024-01-25 19:52:45 +01:00
Fedora Release Engineering
c1e0f10b13 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-24 22:32:24 +00:00
Fedora Release Engineering
ac22d825a0 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-20 22:54:38 +00:00
Antonio Trande
87f2b73b90 Release 115.6.0 rh1 2023-12-20 22:12:40 +01:00
Antonio Trande
27357afda6 Release 115.5.0 2023-11-22 23:25:28 +01:00
Antonio Trande
fe2bfbe1dc Upload source code archive rh2 2023-11-12 18:23:39 +01:00
Antonio Trande
6253ffe421 Remove old patch 2023-10-29 21:47:42 +01:00
Antonio Trande
c66197e480 Release 115.4.0 2023-10-29 21:15:25 +01:00
Antonio Trande
775cb0ebfd Add missing installed files 2023-10-02 21:18:26 +02:00
Antonio Trande
fd9745a59a Exclude manpage temporarily 2023-10-01 21:30:32 +02:00
Antonio Trande
31005b53e4 Upload new source archive rh2 2023-10-01 19:45:00 +02:00
Antonio Trande
dde38c0354 Fix icecatview.html file 2023-09-30 21:09:09 +02:00
Antonio Trande
68cf0224ae Fix files for processing MOZBUILD 2023-09-30 19:19:52 +02:00
Antonio Trande
84b7afbd5f Release 115.3.1 rh1| Fix clang path 2023-09-29 23:36:07 +02:00
Antonio Trande
90fab27e53 Release 115.3.1 rh1| Epoch 2 2023-09-29 23:19:53 +02:00
Antonio Trande
239fb07bd4 Fix rhbz#2235654 2023-08-31 20:15:26 +02:00
Antonio Trande
37373373d3 Release 102.15.0 2023-08-31 19:10:14 +02:00
Antonio Trande
a02439e311 Release 102.14.0| Use Python-3.11 2023-08-01 20:16:14 +02:00
Fedora Release Engineering
67531fb3c5 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-20 07:13:30 +00:00
Antonio Trande
01e7faaeda Drop obsolete patches 2023-07-04 23:14:07 +02:00
Antonio Trande
643a8f2734 Release 102.13.0 2023-07-04 22:38:54 +02:00
Antonio Trande
02aad2983b Fix required NSS 2023-06-12 21:52:18 +02:00
Antonio Trande
0990aced23 Reload new cbindgen-vendor archive 2023-06-10 19:52:00 +02:00
Antonio Trande
a939d1fb6d Patched for Rust-1.70 2023-06-10 19:27:56 +02:00
Antonio Trande
e998cbea16 Release 102.12.0| Try to build with cbindgen-0.24.5 2023-06-02 19:37:52 +02:00
Antonio Trande
5ba1bc0a67 Release 102.12.0 rh1 2023-06-02 15:08:58 +02:00
Antonio Trande
f45d231b6b Change RUSTFLAGS setting 2023-05-16 18:31:17 +02:00
Antonio Trande
2d8e9a1839 New source archive rh2| Update bundled bindgen to the release 0.65.1 2023-05-14 17:20:28 +02:00
Antonio Trande
db252abf78 Release 102.11.0 2023-05-09 21:37:28 +02:00
Antonio Trande
6d80f1870d Debug builds 2023-04-25 12:17:10 +02:00
Antonio Trande
aeeb81624d Fix Patch commands| Add commasplit patch from Firefox builds 2023-04-12 21:22:04 +02:00
37 changed files with 304 additions and 2348 deletions

78
.gitignore vendored
View file

@ -218,3 +218,81 @@
/icecat-102.9.0-rh1.tar.bz2
/icecat-102.10.0-langpacks.tar.gz
/icecat-102.10.0-rh1.tar.bz2
/icecat-102.11.0-langpacks.tar.gz
/icecat-102.11.0-rh1.tar.bz2
/icecat-102.11.0-rh2.tar.bz2
/icecat-102.12.0-langpacks.tar.gz
/icecat-102.12.0-rh1.tar.bz2
/icecat-102.13.0-langpacks.tar.gz
/icecat-102.13.0-rh1.tar.bz2
/icecat-102.14.0-langpacks.tar.gz
/icecat-102.14.0-rh1.tar.bz2
/icecat-102.15.0-langpacks.tar.gz
/icecat-102.15.0-rh1.tar.bz2
/icecat-115.3.1-langpacks.tar.gz
/icecat-115.3.1-rh1.tar.bz2
/icecat-115.3.1-rh2.tar.bz2
/icecat-115.4.0-langpacks.tar.gz
/icecat-115.4.0-rh1.tar.bz2
/icecat-115.4.0-rh2.tar.bz2
/icecat-115.5.0-langpacks.tar.gz
/icecat-115.5.0-rh1.tar.bz2
/icecat-115.6.0-langpacks.tar.gz
/icecat-115.6.0-rh1.tar.bz2
/icecat-115.7.0-langpacks.tar.gz
/icecat-115.7.0-rh1.tar.bz2
/icecat-115.8.0-langpacks.tar.gz
/icecat-115.8.0-rh1.tar.bz2
/icecat-115.9.0-langpacks.tar.gz
/icecat-115.9.0-rh1.tar.bz2
/icecat-115.10.0-langpacks.tar.gz
/icecat-115.10.0-rh1.tar.bz2
/icecat-115.11.0-langpacks.tar.gz
/icecat-115.11.0-rh1.tar.bz2
/icecat-115.12.0-langpacks.tar.gz
/icecat-115.12.0-rh1.tar.bz2
/icecat-115.13.0-langpacks.tar.gz
/icecat-115.13.0-rh1.tar.bz2
/icecat-115.14.0-langpacks.tar.gz
/icecat-115.14.0-rh1.tar.bz2
/icecat-115.15.0-langpacks.tar.gz
/icecat-115.15.0-rh1.tar.bz2
/icecat-115.16.0-langpacks.tar.gz
/icecat-115.16.0-rh1.tar.bz2
/icecat-115.16.1-langpacks.tar.gz
/icecat-115.16.1-rh1.tar.bz2
/icecat-115.17.0-langpacks.tar.gz
/icecat-115.17.0-rh1.tar.bz2
/icecat-115.18.0-langpacks.tar.gz
/icecat-115.18.0-rh1.tar.bz2
/icecat-115.18.0-rh2.tar.bz2
/icecat-115.19.0-langpacks.tar.gz
/icecat-115.19.0-rh1.tar.bz2
/icecat-115.20.0-langpacks.tar.gz
/icecat-115.20.0-rh1.tar.bz2
/icecat-115.21.0-langpacks.tar.gz
/icecat-115.21.0-rh1.tar.bz2
/icecat-115.22.0-langpacks.tar.gz
/icecat-115.22.0-rh1.tar.bz2
/icecat-115.23.0-langpacks.tar.gz
/icecat-115.23.0-rh1.tar.bz2
/icecat-115.23.1-langpacks.tar.gz
/icecat-115.23.1-rh1.tar.bz2
/icecat-115.24.0-langpacks.tar.gz
/icecat-115.24.0-rh1.tar.bz2
/icecat-128.12.0-langpacks.tar.gz
/icecat-128.12.0-rh1.tar.bz2
/icecat-128.13.0-langpacks.tar.gz
/icecat-128.13.0-rh1.tar.bz2
/icecat-128.14.0-langpacks.tar.gz
/icecat-128.14.0-rh1.tar.bz2
/icecat-140.3.0-langpacks.tar.gz
/icecat-140.3.0-rh1.tar.bz2
/icecat-140.4.0-langpacks.tar.gz
/icecat-140.4.0-rh1.tar.bz2
/icecat-140.5.0-langpacks.tar.gz
/icecat-140.5.0-rh1.tar.bz2
/icecat-140.6.0-langpacks.tar.gz
/icecat-140.6.0-rh1.tar.bz2
/icecat-140.7.0-langpacks.tar.gz
/icecat-140.7.0-rh1.tar.bz2

View file

@ -6,21 +6,29 @@ Extensions included to this version of IceCat:
GNU LibreJS aims to address the JavaScript problem described in the article
"[The JavaScript Trap](https://www.gnu.org/philosophy/javascript-trap.html)" of Richard Stallman.
* HTTPS Everywhere
HTTPS Everywhere is an extension that encrypts your communications with
many major websites, making your browsing more secure.
* JShelter
Mitigates potential threats from JavaScript, including fingerprinting,
tracking, and data collection. Slightly modifies the results of API calls,
differently on different domains, so that the cross-site fingerprint is not
stable. Applies security counter-measures that are likely not to break web pages.
Allows fine-grained control over the restrictions and counter-measures applied
to each domain.
* A set of companion extensions for LibreJS by Nathan Nichols
are pre-installed, and provide workarounds to use some services at USPS,
RSF.org, SumOfUs.org, pay.gov, McDonalds, goteo.org and Google Docs
without using nonfree JavaScript.
* A series of configuration changes and tweaks were applied to ensure that
IceCat does not initiate network connections that the user has not explicitly
requested. This implies not downloading feeds, updates, blacklists or any
other similar data needed during startup.
Origin of the name
The name “IceCat” was coined to show our relationship to the Mozilla Firefox browser. Ice isn't Fire and a Cat isn't a Fox, so it is clearly a different package (we don't want Mozilla blamed for our mistakes, nor cause confusion with their trademarks), but is equally clearly intimately related (of course nearly all of the work comes from the Mozilla foundation effort, so we want to give credit).

View file

@ -1,45 +0,0 @@
diff -up firefox-72.0/gfx/skia/skia/include/private/SkHalf.h.aarch64-skia firefox-72.0/gfx/skia/skia/include/private/SkHalf.h
--- firefox-72.0/gfx/skia/skia/include/private/SkHalf.h.aarch64-skia 2020-01-02 22:33:02.000000000 +0100
+++ firefox-72.0/gfx/skia/skia/include/private/SkHalf.h 2020-01-03 09:00:37.537296105 +0100
@@ -40,7 +40,7 @@ static inline Sk4h SkFloatToHalf_finite_
static inline Sk4f SkHalfToFloat_finite_ftz(uint64_t rgba) {
Sk4h hs = Sk4h::Load(&rgba);
-#if !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64)
+#if 0 // !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64)
float32x4_t fs;
asm ("fcvtl %[fs].4s, %[hs].4h \n" // vcvt_f32_f16(...)
: [fs] "=w" (fs) // =w: write-only NEON register
@@ -62,7 +62,7 @@ static inline Sk4f SkHalfToFloat_finite_
}
static inline Sk4h SkFloatToHalf_finite_ftz(const Sk4f& fs) {
-#if !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64)
+#if 0 // !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64)
float32x4_t vec = fs.fVec;
asm ("fcvtn %[vec].4h, %[vec].4s \n" // vcvt_f16_f32(vec)
: [vec] "+w" (vec)); // +w: read-write NEON register
diff -up firefox-72.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h.aarch64-skia firefox-72.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h
--- firefox-72.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h.aarch64-skia 2020-01-03 09:00:37.538296107 +0100
+++ firefox-72.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h 2020-01-03 10:11:41.259219508 +0100
@@ -1087,7 +1087,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 vcvt_f16_f32(f);
diff -up firefox-72.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h.aarch64-skia firefox-72.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h
--- firefox-72.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h.aarch64-skia 2020-01-03 09:00:37.538296107 +0100
+++ firefox-72.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h 2020-01-03 10:11:53.513250979 +0100
@@ -183,8 +183,6 @@ SI F F_from_Half(U16 half) {
SI U16 Half_from_F(F f) {
#if defined(USING_NEON_FP16)
return bit_pun<U16>(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)

View file

@ -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"

View file

@ -1,12 +0,0 @@
diff -up firefox-97.0/toolkit/moz.configure.disable-elfhack firefox-97.0/toolkit/moz.configure
--- firefox-97.0/toolkit/moz.configure.disable-elfhack 2022-02-08 09:58:47.518047952 +0100
+++ firefox-97.0/toolkit/moz.configure 2022-02-08 10:17:49.552945956 +0100
@@ -1273,7 +1273,7 @@ with only_when("--enable-compile-environ
help="{Enable|Disable} elf hacks",
)
- set_config("USE_ELF_HACK", depends_if("--enable-elf-hack")(lambda _: True))
+ set_config("USE_ELF_HACK", depends_if("--enable-elf-hack")(lambda _: False))
@depends(build_environment)

View file

@ -1,77 +0,0 @@
diff -up firefox-88.0/dom/media/platforms/PDMFactory.cpp.ffvpx-with-vapi firefox-88.0/dom/media/platforms/PDMFactory.cpp
--- firefox-88.0/dom/media/platforms/PDMFactory.cpp.ffvpx-with-vapi 2021-04-15 21:44:28.000000000 +0200
+++ firefox-88.0/dom/media/platforms/PDMFactory.cpp 2021-04-19 13:27:07.808429721 +0200
@@ -481,12 +481,6 @@ void PDMFactory::CreateRddPDMs() {
CreateAndStartupPDM<AppleDecoderModule>();
}
#endif
-#ifdef MOZ_FFVPX
- if (StaticPrefs::media_ffvpx_enabled() &&
- StaticPrefs::media_rdd_ffvpx_enabled()) {
- CreateAndStartupPDM<FFVPXRuntimeLinker>();
- }
-#endif
#ifdef MOZ_FFMPEG
if (StaticPrefs::media_ffmpeg_enabled() &&
StaticPrefs::media_rdd_ffmpeg_enabled() &&
@@ -495,6 +489,12 @@ void PDMFactory::CreateRddPDMs() {
FFmpegRuntimeLinker::LinkStatusCode());
}
#endif
+#ifdef MOZ_FFVPX
+ if (StaticPrefs::media_ffvpx_enabled() &&
+ StaticPrefs::media_rdd_ffvpx_enabled()) {
+ CreateAndStartupPDM<FFVPXRuntimeLinker>();
+ }
+#endif
CreateAndStartupPDM<AgnosticDecoderModule>();
}
@@ -525,11 +525,6 @@ void PDMFactory::CreateContentPDMs() {
CreateAndStartupPDM<OmxDecoderModule>();
}
#endif
-#ifdef MOZ_FFVPX
- if (StaticPrefs::media_ffvpx_enabled()) {
- CreateAndStartupPDM<FFVPXRuntimeLinker>();
- }
-#endif
#ifdef MOZ_FFMPEG
if (StaticPrefs::media_ffmpeg_enabled() &&
!CreateAndStartupPDM<FFmpegRuntimeLinker>()) {
@@ -537,6 +532,11 @@ void PDMFactory::CreateContentPDMs() {
FFmpegRuntimeLinker::LinkStatusCode());
}
#endif
+#ifdef MOZ_FFVPX
+ if (StaticPrefs::media_ffvpx_enabled()) {
+ CreateAndStartupPDM<FFVPXRuntimeLinker>();
+ }
+#endif
#ifdef MOZ_WIDGET_ANDROID
if (StaticPrefs::media_android_media_codec_enabled()) {
StartupPDM(AndroidDecoderModule::Create(),
@@ -571,11 +571,6 @@ void PDMFactory::CreateDefaultPDMs() {
CreateAndStartupPDM<OmxDecoderModule>();
}
#endif
-#ifdef MOZ_FFVPX
- if (StaticPrefs::media_ffvpx_enabled()) {
- CreateAndStartupPDM<FFVPXRuntimeLinker>();
- }
-#endif
#ifdef MOZ_FFMPEG
if (StaticPrefs::media_ffmpeg_enabled() &&
!CreateAndStartupPDM<FFmpegRuntimeLinker>()) {
@@ -583,6 +578,11 @@ void PDMFactory::CreateDefaultPDMs() {
FFmpegRuntimeLinker::LinkStatusCode());
}
#endif
+#ifdef MOZ_FFVPX
+ if (StaticPrefs::media_ffvpx_enabled()) {
+ CreateAndStartupPDM<FFVPXRuntimeLinker>();
+ }
+#endif
#ifdef MOZ_WIDGET_ANDROID
if (StaticPrefs::media_android_media_codec_enabled()) {
StartupPDM(AndroidDecoderModule::Create(),

View file

@ -1,12 +0,0 @@
diff -up firefox-78.0/toolkit/moz.configure.nss-version firefox-78.0/toolkit/moz.configure
--- firefox-78.0/toolkit/moz.configure.nss-version 2020-06-30 08:47:09.657501414 +0200
+++ firefox-78.0/toolkit/moz.configure 2020-06-30 08:47:12.652510169 +0200
@@ -2089,7 +2089,7 @@ option('--with-system-nss', help='Use sy
imply_option('--with-system-nspr', True, when='--with-system-nss')
-nss_pkg = pkg_check_modules('NSS', 'nss >= 3.53.1', when='--with-system-nss', config=False)
+nss_pkg = pkg_check_modules('NSS', 'nss >= 3.53.0', when='--with-system-nss', config=False)
set_config('MOZ_SYSTEM_NSS', True, when='--with-system-nss')

View file

@ -1,14 +0,0 @@
diff -up firefox-76.0.1/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp.old firefox-76.0.1/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp
--- firefox-76.0.1/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp.old 2020-05-13 14:28:26.556800474 +0200
+++ firefox-76.0.1/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp 2020-05-13 14:28:31.562768959 +0200
@@ -43,7 +43,7 @@ typedef int VAStatus;
#endif
// Use some extra HW frames for potential rendering lags.
-#define EXTRA_HW_FRAMES 6
+#define EXTRA_HW_FRAMES 20
typedef mozilla::layers::Image Image;
typedef mozilla::layers::PlanarYCbCrImage PlanarYCbCrImage;
diff -up firefox-76.0.1/media/libyuv/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS.chromium.old firefox-76.0.1/media/libyuv/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS.chromium
diff -up firefox-76.0.1/media/webrtc/trunk/Makefile.old firefox-76.0.1/media/webrtc/trunk/Makefile

View file

@ -1,20 +0,0 @@
--- a/gfx/2d/Rect.orig..h 2023-01-17 19:49:02.818099401 +0100
+++ b/gfx/2d/Rect.h 2023-01-21 17:11:01.695573664 +0100
@@ -15,6 +15,7 @@
#include "mozilla/Maybe.h"
#include <cmath>
+#include <cstdint>
namespace mozilla {
--- a/toolkit/components/telemetry/pingsender/pingsender.orig.cpp 2023-01-17 19:48:16.000000000 +0100
+++ b/toolkit/components/telemetry/pingsender/pingsender.cpp 2023-01-21 20:05:29.765527367 +0100
@@ -10,6 +10,7 @@
#include <iomanip>
#include <string>
#include <vector>
+#include <cstdint>
#include <zlib.h>

View file

@ -1,425 +0,0 @@
# HG changeset patch
# User Alexandre Lissy <lissyx+mozillians@lissyx.dyndns.org>
# Date 1639046833 0
# Node ID 33f81fb07d792be30dcd1008b21b187ca24f21e6
# Parent 3382e4da79289240c4c2fe718b461f7a58bce553
Bug 1742849 - Parsing CCache 4.4+ stats output r=mhentges
Statistics output changed after 4.4 and requires different parsing, as
well as an extra --verbose to get the same informations as before.
See https://github.com/ccache/ccache/commit/8892814e8a790d615e44262c0005513d6d49f9e1
Differential Revision: https://phabricator.services.mozilla.com/D133086
diff --git a/python/mozbuild/mozbuild/controller/building.py b/python/mozbuild/mozbuild/controller/building.py
--- a/python/mozbuild/mozbuild/controller/building.py
+++ b/python/mozbuild/mozbuild/controller/building.py
@@ -5,16 +5,17 @@
from __future__ import absolute_import, print_function, unicode_literals
import errno
import getpass
import io
import json
import logging
import os
+import re
import shutil
import six
import subprocess
import sys
import time
from collections import (
Counter,
@@ -583,21 +584,24 @@ class BuildMonitor(MozbuildObject):
"Swap in/out (MB): {sin}/{sout}",
)
def ccache_stats(self):
ccache_stats = None
ccache = mozfile.which("ccache")
if ccache:
+ # With CCache v4.4+ statistics might require --verbose
+ is_version_4_4_or_newer = CCacheStats.check_version_4_4_or_newer(ccache)
try:
output = subprocess.check_output(
- [ccache, "-s"], universal_newlines=True
+ [ccache, "-s" if not is_version_4_4_or_newer else "-sv"],
+ universal_newlines=True,
)
- ccache_stats = CCacheStats(output)
+ ccache_stats = CCacheStats(output, is_version_4_4_or_newer)
except ValueError as e:
self.log(logging.WARNING, "ccache", {"msg": str(e)}, "{msg}")
return ccache_stats
class TerminalLoggingHandler(logging.Handler):
"""Custom logging handler that works with terminal window dressing.
@@ -883,33 +887,154 @@ class CCacheStats(object):
("cache_files", "files in cache"),
("cache_size", "cache size"),
("cache_max_size", "max cache size"),
]
DIRECTORY_DESCRIPTION = "cache directory"
PRIMARY_CONFIG_DESCRIPTION = "primary config"
SECONDARY_CONFIG_DESCRIPTION = "secondary config"
+
+ STATS_KEYS_4_4 = [
+ ("stats_updated", "Summary/Stats updated"),
+ (
+ "cache_hit_rate",
+ "Summary/Hits",
+ lambda x: next(iter(re.findall(r"\((.*) %\)", x)), "0.00 %"),
+ ),
+ (
+ "cache_hit_direct",
+ "Summary/Hits/Direct",
+ lambda x: next(iter(re.findall(r"(\d+)\s+/\s+\d+\s+\(", x)), "0"),
+ ),
+ (
+ "cache_hit_preprocessed",
+ "Summary/Hits/Preprocessed",
+ lambda x: next(iter(re.findall(r"(\d+)\s+/\s+\d+\s+\(", x)), "0"),
+ ),
+ ("cache_miss", "Summary/Misses"),
+ ("error", "Summary/Errors"),
+ ("linking", "Uncacheable/Called for linking"),
+ ("preprocessing", "Uncacheable/Called for preprocessing"),
+ ("failed", "Uncacheable/Compilation failed"),
+ ("preprocessor_error", "Uncacheable/Preprocessing failed"),
+ ("cache_file_missing", "Errors/Missing cache file"),
+ ("bad_args", "Uncacheable/Bad compiler arguments"),
+ ("autoconf", "Uncacheable/Autoconf compile/link"),
+ ("no_input", "Uncacheable/No input file"),
+ ("num_cleanups", "Primary storage/Cleanups"),
+ ("cache_files", "Primary storage/Files"),
+ # Cache size is reported in GB, see
+ # https://github.com/ccache/ccache/commit/8892814e8a790d615e44262c0005513d6d49f9e1#diff-30ec2bbfafe4c3842c8e35179ef0d3253a66dcc054812e50049d0ca3b10e317fR274
+ (
+ "cache_size",
+ "Primary storage/Cache size (GB)",
+ lambda x: str(
+ float(next(iter(re.findall(r"(.*)\s+/\s+.*\s+\(", x)), "0"))
+ * CCacheStats.GiB
+ ),
+ True, # Allow to continue evaluation for the next value
+ ),
+ (
+ "cache_max_size",
+ "Primary storage/Cache size (GB)",
+ lambda x: str(
+ float(next(iter(re.findall(r".*\s+/\s+(.*)\s+\(", x)), "0"))
+ * CCacheStats.GiB
+ ),
+ ),
+ ]
+
+ SKIP_KEYS_4_4 = [
+ "Summary/Uncacheable",
+ "Summary/Misses/Direct",
+ "Summary/Misses/Preprocessed",
+ "Primary storage/Hits",
+ "Primary storage/Misses",
+ ]
+
+ DIRECTORY_DESCRIPTION_4_4 = "Summary/Cache directory"
+ PRIMARY_CONFIG_DESCRIPTION_4_4 = "Summary/Primary config"
+ SECONDARY_CONFIG_DESCRIPTION_4_4 = "Summary/Secondary config"
+
ABSOLUTE_KEYS = {"cache_files", "cache_size", "cache_max_size"}
FORMAT_KEYS = {"cache_size", "cache_max_size"}
GiB = 1024 ** 3
MiB = 1024 ** 2
KiB = 1024
- def __init__(self, output=None):
+ def __init__(self, output=None, is_version_4_4_or_newer=False):
"""Construct an instance from the output of ccache -s."""
self._values = {}
self.cache_dir = ""
self.primary_config = ""
self.secondary_config = ""
if not output:
return
+ if is_version_4_4_or_newer:
+ self._parse_human_format_4_4_plus(output)
+ else:
+ self._parse_human_format(output)
+
+ def _parse_human_format_4_4_plus(self, content):
+ head = ""
+ subhead = ""
+
+ for line in content.splitlines():
+ name = ""
+ if not line:
+ continue
+ if line.startswith(" "):
+ if not line.startswith(" "):
+ subhead = line.strip().split(":")[0]
+ name = line.strip().split(":")[0]
+ raw_value = ":".join(line.split(":")[1:]).strip()
+ if raw_value:
+ key = head
+ if subhead != name:
+ key += "/{}".format(subhead)
+ key += "/{}".format(name)
+ self._parse_line_4_4_plus(key, raw_value)
+ else:
+ head = line.strip(":")
+ subhead = ""
+
+ def _parse_line_4_4_plus(self, key, value):
+ if key.startswith(self.DIRECTORY_DESCRIPTION_4_4):
+ self.cache_dir = value
+ elif key.startswith(self.PRIMARY_CONFIG_DESCRIPTION_4_4):
+ self.primary_config = value
+ elif key.startswith(self.SECONDARY_CONFIG_DESCRIPTION_4_4):
+ self.secondary_config = value
+ else:
+ for seq in self.STATS_KEYS_4_4:
+ stat_key = seq[0]
+ stat_description = seq[1]
+ raw_value = value
+ if len(seq) > 2:
+ raw_value = seq[2](value)
+ if stat_key not in self._values and key == stat_description:
+ self._values[stat_key] = self._parse_value(raw_value)
+
+ # We dont want to break when we need to extract two infos
+ # from the same line
+ if len(seq) < 4:
+ break
+ else:
+ if key not in self.SKIP_KEYS_4_4:
+ raise ValueError(
+ "Failed to parse ccache stats output: '{}' '{}'".format(
+ key, value
+ )
+ )
+
+ def _parse_human_format(self, output):
for line in output.splitlines():
line = line.strip()
if line:
self._parse_line(line)
def _parse_line(self, line):
line = six.ensure_text(line)
if line.startswith(self.DIRECTORY_DESCRIPTION):
@@ -1050,6 +1175,29 @@
else:
return "%.1f Kbytes" % (float(v) / CCacheStats.KiB)
+ @staticmethod
+ def check_version_4_4_or_newer(ccache):
+ output_version = subprocess.check_output(
+ [ccache, "--version"], universal_newlines=True
+ )
+ return CCacheStats._is_version_4_4_or_newer(output_version)
+
+ @staticmethod
+ def _is_version_4_4_or_newer(output):
+ if "ccache version" not in output:
+ return False
+
+ major = 0
+ minor = 0
+
+ for line in output.splitlines():
+ version = re.search(r"ccache version (\d+).(\d+).*", line)
+ if version:
+ major = int(version.group(1))
+ minor = int(version.group(2))
+ break
+
+ return ((major << 8) + minor) >= ((4 << 8) + 4)
class BuildDriver(MozbuildObject):
"""Provides a high-level API for build actions."""
diff --git a/python/mozbuild/mozbuild/test/controller/test_ccachestats.py b/python/mozbuild/mozbuild/test/controller/test_ccachestats.py
--- a/python/mozbuild/mozbuild/test/controller/test_ccachestats.py
+++ b/python/mozbuild/mozbuild/test/controller/test_ccachestats.py
@@ -223,16 +223,143 @@ class TestCcacheStats(unittest.TestCase)
cleanups performed 3154
files in cache 18525
cache size 13.4 GB
max cache size 15.0 GB
""".format(
timestamp=time.strftime("%c"), timestamp2=time.strftime("%c")
)
+ VERSION_3_5_GIT = """
+ ccache version 3.5.1+2_gf5309092_dirty
+
+ Copyright (C) 2002-2007 Andrew Tridgell
+ Copyright (C) 2009-2019 Joel Rosdahl
+
+ This program is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3 of the License, or (at your option) any later
+ version.
+ """
+
+ VERSION_4_2 = """
+ ccache version 4.2.1
+
+ Copyright (C) 2002-2007 Andrew Tridgell
+ Copyright (C) 2009-2021 Joel Rosdahl and other contributors
+
+ See <https://ccache.dev/credits.html> for a complete list of contributors.
+
+ This program is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3 of the License, or (at your option) any later
+ version.
+ """
+
+ VERSION_4_4 = """
+ ccache version 4.4
+ Features: file-storage http-storage
+
+ Copyright (C) 2002-2007 Andrew Tridgell
+ Copyright (C) 2009-2021 Joel Rosdahl and other contributors
+
+ See <https://ccache.dev/credits.html> for a complete list of contributors.
+
+ This program is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3 of the License, or (at your option) any later
+ version.
+ """
+
+ VERSION_4_4_2 = """
+ ccache version 4.4.2
+ Features: file-storage http-storage
+
+ Copyright (C) 2002-2007 Andrew Tridgell
+ Copyright (C) 2009-2021 Joel Rosdahl and other contributors
+
+ See <https://ccache.dev/credits.html> for a complete list of contributors.
+
+ This program is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3 of the License, or (at your option) any later
+ version.
+ """
+
+ VERSION_4_5 = """
+ ccache version 4.5.1
+ Features: file-storage http-storage redis-storage
+
+ Copyright (C) 2002-2007 Andrew Tridgell
+ Copyright (C) 2009-2021 Joel Rosdahl and other contributors
+
+ See <https://ccache.dev/credits.html> for a complete list of contributors.
+
+ This program is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3 of the License, or (at your option) any later
+ version.
+ """
+
+ STAT10 = """
+Summary:
+ Cache directory: /home/suer/.ccache
+ Primary config: /home/suer/.ccache/ccache.conf
+ Secondary config: /etc/ccache.conf
+ Stats updated: {timestamp}
+ Hits: 916 / 9343 (9.80 %)
+ Direct: 197 / 197 (100.0 %)
+ Preprocessed: 719 / 719 (100.0 %)
+ Misses: 8427
+ Direct: 0
+ Preprocessed: 0
+ Errors: 1
+ Uncacheable: 1251
+Primary storage:
+ Hits: 0 / 0
+ Misses: 0
+ Cache size (GB): 4.41 / 5.00 (88.27 %)
+ Files: 4425
+ Cleanups: 161
+Errors:
+ Missing cache file: 1
+Uncacheable:
+ Autoconf compile/link: 418
+ Bad compiler arguments: 6
+ Called for linking: 569
+ Called for preprocessing: 110
+ Compilation failed: 49
+ No input file: 9
+ Preprocessing failed: 90
+ """.format(
+ timestamp=time.strftime("%c")
+ )
+
+ STAT11 = """
+Summary:
+ Cache directory: /home/suer/.ccache
+ Primary config: /home/suer/.ccache/ccache.conf
+ Secondary config: /etc/ccache.conf
+ Stats updated: {timestamp}
+ Hits: 0 / 0
+ Direct: 0 / 0
+ Preprocessed: 0 / 0
+ Misses: 0
+ Direct: 0
+ Preprocessed: 0
+Primary storage:
+ Hits: 0 / 0
+ Misses: 0
+ Cache size (GB): 0.00 / 5.00 (0.00 %)
+ Files: 0
+ Cleanups: 16
+ """.format(
+ timestamp=time.strftime("%c")
+ )
+
def test_parse_garbage_stats_message(self):
self.assertRaises(ValueError, CCacheStats, self.STAT_GARBAGE)
def test_parse_zero_stats_message(self):
stats = CCacheStats(self.STAT0)
self.assertEqual(stats.cache_dir, "/home/tlin/.ccache")
self.assertEqual(stats.hit_rates(), (0, 0, 0))
@@ -290,11 +417,26 @@ class TestCcacheStats(unittest.TestCase)
stat8 = CCacheStats(self.STAT8)
self.assertTrue(stat8)
def test_stats_version35(self):
# Test parsing 3.5 output.
stat9 = CCacheStats(self.STAT9)
self.assertTrue(stat9)
+ def test_stats_version44(self):
+ # verify version checks
+ self.assertFalse(CCacheStats._is_version_4_4_or_newer(self.VERSION_3_5_GIT))
+ self.assertFalse(CCacheStats._is_version_4_4_or_newer(self.VERSION_4_2))
+ self.assertTrue(CCacheStats._is_version_4_4_or_newer(self.VERSION_4_4))
+ self.assertTrue(CCacheStats._is_version_4_4_or_newer(self.VERSION_4_4_2))
+ self.assertTrue(CCacheStats._is_version_4_4_or_newer(self.VERSION_4_5))
+
+ # Test parsing 4.4+ output.
+ stat10 = CCacheStats(self.STAT10, True)
+ self.assertTrue(stat10)
+
+ stat11 = CCacheStats(self.STAT11, True)
+ self.assertTrue(stat11)
+
if __name__ == "__main__":
main()

View file

@ -1,12 +0,0 @@
diff -up firefox-73.0/media/libaom/moz.build.old firefox-73.0/media/libaom/moz.build
--- firefox-73.0/media/libaom/moz.build.old 2020-02-07 23:13:28.000000000 +0200
+++ firefox-73.0/media/libaom/moz.build 2020-02-17 10:30:08.509805092 +0200
@@ -55,7 +55,7 @@ elif CONFIG['CPU_ARCH'] == 'arm':
for f in SOURCES:
if f.endswith('neon.c'):
- SOURCES[f].flags += CONFIG['VPX_ASFLAGS']
+ SOURCES[f].flags += CONFIG['NEON_FLAGS']
if CONFIG['OS_TARGET'] == 'Android':
# For cpu-features.h

View file

@ -1,36 +0,0 @@
# Fixes installation of those addons which don't have ID on IceCat ("Cannot find id for addon" error).
--- a/toolkit/mozapps/extensions/internal/XPIInstall.jsm
+++ b/toolkit/mozapps/extensions/internal/XPIInstall.jsm
@@ -627,8 +627,30 @@
throw new Error(`Extension is signed with an invalid id (${addon.id})`);
}
}
- if (!addon.id && aLocation.isTemporary) {
- addon.id = generateTemporaryInstallID(aPackage.file);
+ if (!addon.id) {
+ if (aInstallLocation.name == KEY_APP_TEMPORARY) {
+ addon.id = generateTemporaryInstallID(aZipReader.file);
+ } else {
+ try {
+ let sigInput = aZipReader.getInputStream("META-INF/cose.sig");
+ let sigBinary = Cc['@mozilla.org/binaryinputstream;1']
+ .createInstance(Ci.nsIBinaryInputStream);
+ sigBinary.setInputStream(sigInput);
+ var sig = ''
+ var sigCount;
+ while ((sigCount = sigBinary.available()) > 0) {
+ sig += sigBinary.readBytes(sigCount);
+ }
+ let sigMatch = sig.match(/\{\w{8}-\w{4}-\w{4}-\w{4}-\w{12}\}/g)
+ if (sigMatch && sigMatch.length == 1) {
+ addon.id = sigMatch[0]
+ } else {
+ logger.warn("Failed to find addon id");
+ }
+ } catch (e) {
+ logger.warn("Failed to process META-INF/cose.sig");
+ }
+ }
}
}

View file

@ -0,0 +1,14 @@
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

View file

@ -1,62 +0,0 @@
diff -ur a/js/xpconnect/src/XPCJSContext.cpp b/js/xpconnect/src/XPCJSContext.cpp
--- a/js/xpconnect/src/XPCJSContext.cpp 2021-07-05 21:16:02.000000000 +0200
+++ b/js/xpconnect/src/XPCJSContext.cpp 2021-07-19 15:01:24.083460460 +0200
@@ -81,14 +81,6 @@
using namespace JS;
using mozilla::dom::AutoEntryScript;
-// The watchdog thread loop is pretty trivial, and should not require much stack
-// space to do its job. So only give it 32KiB or the platform minimum.
-#if !defined(PTHREAD_STACK_MIN)
-# define PTHREAD_STACK_MIN 0
-#endif
-static constexpr size_t kWatchdogStackSize =
- PTHREAD_STACK_MIN < 32 * 1024 ? 32 * 1024 : PTHREAD_STACK_MIN;
-
static void WatchdogMain(void* arg);
class Watchdog;
class WatchdogManager;
@@ -161,7 +153,7 @@
// watchdog, we need to join it on shutdown.
mThread = PR_CreateThread(PR_USER_THREAD, WatchdogMain, this,
PR_PRIORITY_NORMAL, PR_GLOBAL_THREAD,
- PR_JOINABLE_THREAD, kWatchdogStackSize);
+ PR_JOINABLE_THREAD, 0);
if (!mThread) {
MOZ_CRASH("PR_CreateThread failed!");
}
diff -ur a/security/sandbox/linux/launch/SandboxLaunch.cpp b/security/sandbox/linux/launch/SandboxLaunch.cpp
--- a/security/sandbox/linux/launch/SandboxLaunch.cpp 2021-07-05 18:20:36.000000000 +0200
+++ b/security/sandbox/linux/launch/SandboxLaunch.cpp 2021-07-20 08:39:17.272136982 +0200
@@ -489,7 +489,8 @@ static int CloneCallee(void* aPtr) {
// we don't currently support sandboxing under valgrind.
MOZ_NEVER_INLINE MOZ_ASAN_BLACKLIST static pid_t DoClone(int aFlags,
jmp_buf* aCtx) {
- uint8_t miniStack[PTHREAD_STACK_MIN];
+ static constexpr size_t kStackAlignment = 16;
+ uint8_t miniStack[4096] __attribute__((aligned(kStackAlignment)));
#ifdef __hppa__
void* stackPtr = miniStack;
#else
@@ -510,13 +511,19 @@ static pid_t ForkWithFlags(int aFlags) {
CLONE_CHILD_CLEARTID;
MOZ_RELEASE_ASSERT((aFlags & kBadFlags) == 0);
+ // Block signals due to small stack in DoClone.
+ sigset_t oldSigs;
+ BlockAllSignals(&oldSigs);
+
+ int ret = 0;
jmp_buf ctx;
if (setjmp(ctx) == 0) {
// In the parent and just called setjmp:
- return DoClone(aFlags | SIGCHLD, &ctx);
+ ret = DoClone(aFlags | SIGCHLD, &ctx);
}
+ RestoreSignals(&oldSigs);
// In the child and have longjmp'ed:
- return 0;
+ return ret;
}
static bool WriteStringToFile(const char* aPath, const char* aStr,

View file

@ -1,6 +1,6 @@
#!/bin/bash
VERSION=102.10.0
VERSION=140.7.0
URL=https://ftp.mozilla.org/pub/firefox/releases/${VERSION}esr/linux-x86_64/xpi/
for u in $URL; do

View file

@ -1,20 +0,0 @@
--- old-configure.orig.in 2019-03-02 21:49:16.000000000 +0100
+++ old-configure.in 2019-03-04 12:14:23.842685662 +0100
@@ -1715,7 +1715,7 @@
MOZ_SYSTEM_LIBEVENT=
elif test -z "$MOZ_SYSTEM_LIBEVENT"; then
CFLAGS="-I${LIBEVENT_DIR}/include $CFLAGS"
- LDFLAGS="-L${LIBEVENT_DIR}/lib $LDFLAGS"
+ LDFLAGS="-L${LIBDIR} $LDFLAGS"
MOZ_CHECK_HEADER(event.h,
[if test ! -f "${LIBEVENT_DIR}/include/event.h"; then
AC_MSG_ERROR([event.h found, but is not in ${LIBEVENT_DIR}/include])
@@ -1724,7 +1724,7 @@
AC_CHECK_LIB(event, event_init,
[MOZ_SYSTEM_LIBEVENT=1
MOZ_LIBEVENT_CFLAGS="-I${LIBEVENT_DIR}/include"
- MOZ_LIBEVENT_LIBS="-L${LIBEVENT_DIR}/lib -levent"],
+ MOZ_LIBEVENT_LIBS="-L${LIBDIR} -levent"],
[MOZ_SYSTEM_LIBEVENT= MOZ_LIBEVENT_CFLAGS= MOZ_LIBEVENT_LIBS=])
fi
CFLAGS=$_SAVE_CFLAGS

View file

@ -1,115 +0,0 @@
diff -up firefox-99.0/build/moz.configure/lto-pgo.configure.pgo firefox-99.0/build/moz.configure/lto-pgo.configure
--- firefox-99.0/build/moz.configure/lto-pgo.configure.pgo 2022-03-31 01:24:38.000000000 +0200
+++ firefox-99.0/build/moz.configure/lto-pgo.configure 2022-04-04 10:15:45.387694143 +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-99.0/build/pgo/profileserver.py.pgo firefox-99.0/build/pgo/profileserver.py
--- firefox-99.0/build/pgo/profileserver.py.pgo 2022-03-31 01:24:38.000000000 +0200
+++ firefox-99.0/build/pgo/profileserver.py 2022-04-04 10:15:45.387694143 +0200
@@ -11,7 +11,7 @@
import subprocess
import mozcrash
-from mozbuild.base import MozbuildObject, BinaryNotFoundException
+from mozbuild.base import MozbuildObject, BinaryNotFoundException, BuildEnvironmentNotFoundException
from mozfile import TemporaryDirectory
from mozhttpd import MozHttpd
from mozprofile import IceCatProfile, Preferences
@@ -87,9 +87,22 @@
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
@@ -212,6 +225,9 @@
if get_crashreports(profilePath, name="IceCat exited successfully?") != 0:
print("IceCat 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:
diff -up firefox-99.0/build/unix/mozconfig.unix.pgo firefox-99.0/build/unix/mozconfig.unix
--- firefox-99.0/build/unix/mozconfig.unix.pgo 2022-03-31 01:24:38.000000000 +0200
+++ firefox-99.0/build/unix/mozconfig.unix 2022-04-04 10:15:45.387694143 +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:$PATH"
diff -up firefox-99.0/extensions/spellcheck/src/moz.build.pgo firefox-99.0/extensions/spellcheck/src/moz.build
--- firefox-99.0/extensions/spellcheck/src/moz.build.pgo 2022-03-31 01:24:50.000000000 +0200
+++ firefox-99.0/extensions/spellcheck/src/moz.build 2022-04-04 10:15:45.387694143 +0200
@@ -28,3 +28,5 @@ EXPORTS.mozilla += [
"mozInlineSpellChecker.h",
"mozSpellChecker.h",
]
+
+CXXFLAGS += ['-fno-devirtualize']
diff -up firefox-99.0/toolkit/components/terminator/nsTerminator.cpp.pgo firefox-99.0/toolkit/components/terminator/nsTerminator.cpp
--- firefox-99.0/toolkit/components/terminator/nsTerminator.cpp.pgo 2022-04-04 10:15:45.387694143 +0200
+++ firefox-99.0/toolkit/components/terminator/nsTerminator.cpp 2022-04-04 10:19:07.022239556 +0200
@@ -466,6 +466,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> options(new Options());
// crashAfterTicks is guaranteed to be > 0 as
// crashAfterMS >= ADDITIONAL_WAIT_BEFORE_CRASH_MS >> HEARTBEAT_INTERVAL_MS

View file

@ -1,93 +0,0 @@
--- a/dom/base/usecounters.py.python-open-U 2022-06-28 04:37:00.000000000 +0200
+++ b/dom/base/usecounters.py 2022-07-11 19:17:46.266517761 +0200
@@ -8,7 +8,7 @@ import re
def read_conf(conf_filename):
# Can't read/write from a single StringIO, so make a new one for reading.
- stream = open(conf_filename, "rU")
+ stream = open(conf_filename, "r")
def parse_counters(stream):
for line_num, line in enumerate(stream):
--- a/python/mozbuild/mozbuild/action/process_define_files.py.python-open-U 2022-06-28 04:37:39.000000000 +0200
+++ b/python/mozbuild/mozbuild/action/process_define_files.py 2022-07-11 19:18:24.056417112 +0200
@@ -36,7 +36,7 @@ def process_define_file(output, input):
) and not config.substs.get("JS_STANDALONE"):
config = PartialConfigEnvironment(mozpath.join(topobjdir, "js", "src"))
- with open(path, "rU") as input:
+ with open(path, "r") as input:
r = re.compile(
"^\s*#\s*(?P<cmd>[a-z]+)(?:\s+(?P<name>\S+)(?:\s+(?P<value>\S+))?)?", re.U
)
--- a/python/mozbuild/mozbuild/backend/base.py.python-open-U 2022-06-28 04:37:39.000000000 +0200
+++ b/python/mozbuild/mozbuild/backend/base.py 2022-07-11 19:18:34.165390187 +0200
@@ -272,7 +272,7 @@ class BuildBackend(LoggingMixin):
return status
@contextmanager
- def _write_file(self, path=None, fh=None, readmode="rU"):
+ def _write_file(self, path=None, fh=None, readmode="r"):
"""Context manager to write a file.
This is a glorified wrapper around FileAvoidWrite with integration to
--- a/python/mozbuild/mozbuild/preprocessor.py.python-open-U 2022-06-28 04:37:20.000000000 +0200
+++ b/python/mozbuild/mozbuild/preprocessor.py 2022-07-11 19:19:30.677239685 +0200
@@ -531,7 +531,7 @@ class Preprocessor:
if args:
for f in args:
- with io.open(f, "rU", encoding="utf-8") as input:
+ with io.open(f, "r", encoding="utf-8") as input:
self.processFile(input=input, output=out)
if depfile:
mk = Makefile()
@@ -860,7 +860,7 @@ class Preprocessor:
args = self.applyFilters(args)
if not os.path.isabs(args):
args = os.path.join(self.curdir, args)
- args = io.open(args, "rU", encoding="utf-8")
+ args = io.open(args, "r", encoding="utf-8")
except Preprocessor.Error:
raise
except Exception:
@@ -914,7 +914,7 @@ class Preprocessor:
def preprocess(includes=[sys.stdin], defines={}, output=sys.stdout, marker="#"):
pp = Preprocessor(defines=defines, marker=marker)
for f in includes:
- with io.open(f, "rU", encoding="utf-8") as input:
+ with io.open(f, "r", encoding="utf-8") as input:
pp.processFile(input=input, output=output)
return pp.includes
--- a/python/mozbuild/mozbuild/util.py.python-open-U 2022-06-28 04:37:40.000000000 +0200
+++ b/python/mozbuild/mozbuild/util.py 2022-07-11 19:19:19.903268374 +0200
@@ -225,7 +225,7 @@ class FileAvoidWrite(BytesIO):
still occur, as well as diff capture if requested.
"""
- def __init__(self, filename, capture_diff=False, dry_run=False, readmode="rU"):
+ def __init__(self, filename, capture_diff=False, dry_run=False, readmode="r"):
BytesIO.__init__(self)
self.name = filename
assert type(capture_diff) == bool
--- a/python/mozbuild/mozpack/files.py.python-open-U 2022-06-28 04:37:40.000000000 +0200
+++ b/python/mozbuild/mozpack/files.py 2022-07-11 19:19:40.372213866 +0200
@@ -574,7 +574,7 @@ class PreprocessedFile(BaseFile):
pp = Preprocessor(defines=self.defines, marker=self.marker)
pp.setSilenceDirectiveWarnings(self.silence_missing_directive_warnings)
- with _open(self.path, "rU") as input:
+ with _open(self.path, "r") as input:
with _open(os.devnull, "w") as output:
pp.processFile(input=input, output=output)
@@ -631,7 +631,7 @@ class PreprocessedFile(BaseFile):
pp = Preprocessor(defines=self.defines, marker=self.marker)
pp.setSilenceDirectiveWarnings(self.silence_missing_directive_warnings)
- with _open(self.path, "rU") as input:
+ with _open(self.path, "r") as input:
pp.processFile(input=input, output=dest, depfile=deps_out)
dest.close()

View file

@ -1,27 +0,0 @@
--- thunderbird-91.11.0/xpcom/idl-parser/xpidl/xpidl.py.python-inline-flags 2022-06-28 04:39:56.000000000 +0200
+++ thunderbird-91.11.0/xpcom/idl-parser/xpidl/xpidl.py 2022-07-11 21:55:05.287553042 +0200
@@ -1563,13 +1563,13 @@ class IDLParser(object):
t_ignore = " \t"
def t_multilinecomment(self, t):
- r"/\*(?s).*?\*/"
+ r"/\*(?s:.*?)\*/"
t.lexer.lineno += t.value.count("\n")
if t.value.startswith("/**"):
self._doccomments.append(t.value)
def t_singlelinecomment(self, t):
- r"(?m)//.*?$"
+ r"(?m://.*?$)"
def t_IID(self, t):
return t
@@ -1582,7 +1582,7 @@ class IDLParser(object):
return t
def t_LCDATA(self, t):
- r"(?s)%\{[ ]*C\+\+[ ]*\n(?P<cdata>.*?\n?)%\}[ ]*(C\+\+)?"
+ r"(?s:%\{[ ]*C\+\+[ ]*\n(?P<cdata>.*?\n?)%\}[ ]*(C\+\+)?)"
t.type = "CDATA"
t.value = t.lexer.lexmatch.group("cdata")
t.lexer.lineno += t.value.count("\n")

View file

@ -1,23 +0,0 @@
[Desktop Entry]
Version=1.0
Name=GNU IceCat on Wayland
Comment=Browse the World Wide Web
GenericName=Web Browser
Keywords=Internet;WWW;Browser;Web;Explorer;
Exec=icecat-wayland --name icecat-wayland %u
Icon=icecat
Terminal=false
Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;
Categories=Network;WebBrowser;
StartupNotify=true
Name[en_US]=GNU IceCat on Wayland
Actions=new-window;new-private-window;
[Desktop Action new-window]
Name=Open a New Window
Exec=icecat-wayland --name icecat-wayland --new-window %u
[Desktop Action new-private-window]
Name=Open a New Private Window
Exec=icecat-wayland --private-window --name icecat-wayland %u

View file

@ -1,7 +0,0 @@
#!/bin/bash
#
# Run GNU IceCat under Wayland
#
export MOZ_ENABLE_WAYLAND=1
exec /__PREFIX__/bin/icecat "$@"

View file

@ -1,338 +0,0 @@
[Desktop Entry]
Version=1.0
Name=GNU IceCat on X11
Comment=Browse the World Wide Web
Comment[ar]=تصفح الشبكة العنكبوتية العالمية
Comment[ast]=Restola pela Rede
Comment[bn]=
Comment[ca]=Navegueu per la web
Comment[cs]=Prohlížení stránek World Wide Webu
Comment[da]=Surf på internettet
Comment[de]=Im Internet surfen
Comment[el]=Μπορείτε να περιηγηθείτε στο διαδίκτυο (Web)
Comment[es]=Navegue por la web
Comment[et]=Lehitse veebi
Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید
Comment[fi]=Selaa Internetin WWW-sivuja
Comment[fr]=Naviguer sur le Web
Comment[gl]=Navegar pola rede
Comment[he]=גלישה ברחבי האינטרנט
Comment[hr]=Pretražite web
Comment[hu]=A világháló böngészése
Comment[it]=Esplora il web
Comment[ja]=
Comment[ko]=
Comment[ku]=Li torê bigere
Comment[lt]=Naršykite internete
Comment[nb]=Surf på nettet
Comment[nl]=Verken het internet
Comment[nn]=Surf på nettet
Comment[no]=Surf på nettet
Comment[pl]=Przeglądanie stron WWW
Comment[pt]=Navegue na Internet
Comment[pt_BR]=Navegue na Internet
Comment[ro]=Navigați pe Internet
Comment[ru]=Доступ в Интернет
Comment[sk]=Prehliadanie internetu
Comment[sl]=Brskajte po spletu
Comment[sv]=Surfa på webben
Comment[tr]=İnternet'te Gezinin
Comment[ug]=دۇنيادىكى توربەتلەرنى كۆرگىلى بولىدۇ
Comment[uk]=Перегляд сторінок Інтернету
Comment[vi]=Đ duyt các trang web
Comment[zh_CN]=
Comment[zh_TW]=
GenericName=Web Browser
GenericName[ar]=متصفح ويب
GenericName[ast]=Restolador Web
GenericName[bn]=
GenericName[ca]=Navegador web
GenericName[cs]=Webový prohlížeč
GenericName[da]=Webbrowser
GenericName[el]=Περιηγητής διαδικτύου
GenericName[es]=Navegador web
GenericName[et]=Veebibrauser
GenericName[fa]=مرورگر اینترنتی
GenericName[fi]=WWW-selain
GenericName[fr]=Navigateur Web
GenericName[gl]=Navegador Web
GenericName[he]=דפדפן אינטרנט
GenericName[hr]=Web preglednik
GenericName[hu]=Webböngésző
GenericName[it]=Browser web
GenericName[ja]=
GenericName[ko]=
GenericName[ku]=Geroka torê
GenericName[lt]=Interneto naršyklė
GenericName[nb]=Nettleser
GenericName[nl]=Webbrowser
GenericName[nn]=Nettlesar
GenericName[no]=Nettleser
GenericName[pl]=Przeglądarka WWW
GenericName[pt]=Navegador Web
GenericName[pt_BR]=Navegador Web
GenericName[ro]=Navigator Internet
GenericName[ru]=Веб-браузер
GenericName[sk]=Internetový prehliadač
GenericName[sl]=Spletni brskalnik
GenericName[sv]=Webbläsare
GenericName[tr]=Web Tarayıcı
GenericName[ug]=توركۆرگۈ
GenericName[uk]=Веб-браузер
GenericName[vi]=Trình duyt Web
GenericName[zh_CN]=
GenericName[zh_TW]=
Keywords=Internet;WWW;Browser;Web;Explorer;
Keywords[ar]=انترنت;إنترنت;متصفح;ويب;وب;
Keywords[ast]=Internet;WWW;Restolador;Web;Esplorador;
Keywords[ca]=Internet;WWW;Navegador;Web;Explorador;Explorer;
Keywords[cs]=Internet;WWW;Prohlížeč;Web;Explorer;
Keywords[da]=Internet;Internettet;WWW;Browser;Browse;Web;Surf;Nettet;
Keywords[de]=Internet;WWW;Browser;Web;Explorer;Webseite;Site;surfen;online;browsen;
Keywords[el]=Internet;WWW;Browser;Web;Explorer;Διαδίκτυο;Περιηγητής;IceCat;Φιρεφοχ;Ιντερνετ;
Keywords[es]=Explorador;Internet;WWW;
Keywords[fi]=Internet;WWW;Browser;Web;Explorer;selain;Internet-selain;internetselain;verkkoselain;netti;surffaa;
Keywords[fr]=Internet;WWW;Browser;Web;Explorer;Fureteur;Surfer;Navigateur;
Keywords[he]=דפדפן;אינטרנט;רשת;אתרים;אתר;פיירפוקס;מוזילה;
Keywords[hr]=Internet;WWW;preglednik;Web;
Keywords[hu]=Internet;WWW;Böngésző;Web;Háló;Net;Explorer;
Keywords[it]=Internet;WWW;Browser;Web;Navigatore;
Keywords[is]=Internet;WWW;Vafri;Vefur;Netvafri;Flakk;
Keywords[ja]=Internet;WWW;Web;;;;;
Keywords[nb]=Internett;WWW;Nettleser;Explorer;Web;Browser;Nettside;
Keywords[nl]=Internet;WWW;Browser;Web;Explorer;Verkenner;Website;Surfen;Online;
Keywords[pt]=Internet;WWW;Browser;Web;Explorador;Navegador;
Keywords[pt_BR]=Internet;WWW;Browser;Web;Explorador;Navegador;
Keywords[ru]=Internet;WWW;Browser;Web;Explorer;интернет;браузер;веб;файрфокс;огнелис;
Keywords[sk]=Internet;WWW;Prehliadač;Web;Explorer;
Keywords[sl]=Internet;WWW;Browser;Web;Explorer;Brskalnik;Splet;
Keywords[tr]=İnternet;WWW;Tarayıcı;Web;Gezgin;Web sitesi;Site;sörf;çevrimiçi;tara;
Keywords[uk]=Internet;WWW;Browser;Web;Explorer;Інтернет;мережа;переглядач;оглядач;браузер;веб;файрфокс;вогнелис;перегляд;
Keywords[vi]=Internet;WWW;Browser;Web;Explorer;Trình duyt;Trang web;
Keywords[zh_CN]=Internet;WWW;Browser;Web;Explorer;;;;;IceCat;ff;;;
Keywords[zh_TW]=Internet;WWW;Browser;Web;Explorer;;;;;;;
Exec=icecat-x11 --name icecat-x11 %u
Icon=icecat
Terminal=false
Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;
Categories=Network;WebBrowser;
StartupNotify=true
Name[en_US]=GNU IceCat on X11
Actions=new-window;new-private-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]=&#xad;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]=&#xad;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&#173;
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]=Ca s mi
Name[wo]=Palanteer bu bees
Name[xh]=Ifestile entsha
Name[zh-CN]=
Name[zh-TW]=
Exec=icecat-x11 --name icecat-x11 --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]=نْو پرایوٹ وینڈو&amp;
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]=Ca s riêng tư mi
Name[wo]=Panlanteeru biir bu bees
Name[xh]=Ifestile yangasese entsha
Name[zh-CN]=
Name[zh-TW]=
Exec=icecat-x11 --name icecat-x11 --private-window %u

View file

@ -1,7 +0,0 @@
#!/bin/bash
#
# Run GNU IceCat on X11 backend
#
export MOZ_DISABLE_WAYLAND=1
exec /__PREFIX__/bin/icecat "$@"

View file

@ -64,7 +64,7 @@ MOZ_DIST_BIN="$MOZ_LIB_DIR/icecat"
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-icecat.sh"
MOZ_LAUNCHER="$MOZ_DIST_BIN/icecat"
GETENFORCE_FILE="/usr/sbin/getenforce"
##
@ -269,13 +269,11 @@ do
;;
esac
done
# Run the browser
debugging=0
if [ $debugging = 1 ]
then
echo $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@"
fi
## Allow downgrade because during distro upgrade the build time can be
## older in newer version than the previous one.
##
export MOZ_ALLOW_DOWNGRADE=1
exec $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@"
exec $MOZ_PROGRAM "$@"

View file

@ -2,21 +2,14 @@
# Set to true if it's going to be submitted as update
%global release_build 1
# Set new source-code build version
# This tag indicates a new rebuild for Fedora
# Set new source-code build version for Fedora and, not necessarily, for upstream too
%global redhat_ver rh1
# Exclude ARM for the following error:
# terminate called after throwing an instance of 'std::bad_alloc'
# what(): std::bad_alloc
# error: could not compile `gkrust`
ExcludeArch: %{arm}
ExcludeArch: %{ix86} %{arm}
# Build is failing because of
# include/mozilla/FloatingPoint.h:212:31: error: inlining failed in call to always_inline bool mozilla::IsNegativeZero(T) [with T = double]: indirect function call with a yet undetermined callee
%if 0%{?fedora} > 37
ExcludeArch: s390x
%endif
# Bundled cbindgen makes build slow.
# Enable only if system cbindgen is not available.
%global use_bundled_cbindgen 0
####################
@ -27,57 +20,54 @@ ExcludeArch: s390x
# Downgrade optimization
%global less_optbuild 0
# Use mozilla hardening option?
%global hardened_build 1
####################
# Build PGO+LTO on x86_64 and aarch64 only due to build issues
# on other arches.
%ifarch x86_64
# Build PGO+LTO on x86_64 and aarch64 only
%ifarch x86_64 %{arm64}
%if 0%{?release_build}
%global build_with_pgo 0
%global pgo_wayland 0
%global build_with_pgo 1
%global pgo_wayland 1
%global launch_wayland_compositor 1
%else
%global build_with_pgo 0
%endif
%endif
%global pgo_wayland 0
%global launch_wayland_compositor 0
%if 0%{?build_with_pgo}
%global launch_wayland_compositor 1
%endif
%endif
# Disable LTO to work around rhbz#1883904
%define _lto_cflags %{nil}
####################
# Active/Deactive language files handling
%global build_langpacks 1
%bcond_without langpacks
%global default_bookmarks_file %{_datadir}/bookmarks/default-bookmarks.html
%if %{with langpacks}
%bcond_without langpacks_subpkg
%endif
# Define installation directories
%global icecatappdir %{_libdir}/%{name}
%global icecat_ver %{name}-%{version}
%global icecat_devel %{name}-devel-%{version}
# Define language files directory
%global langpackdir %{icecatappdir}/langpacks
%global icecat_ver %{name}-%{version}
%global icecat_devel %{name}-devel-%{version}
%global toolkit_gtk3 1
# Big endian platforms
%ifarch ppc64 s390x
%ifarch s390x %{power64}
# Javascript Intl API is not supported on big endian platforms right now:
# https://bugzilla.mozilla.org/show_bug.cgi?id=1322212
%global big_endian 1
%endif
%if 0%{?fedora}
%global system_nss 1
%else
%global system_nss 0
%endif
%if %{?system_nss}
%global nspr_version 4.32
%global nspr_build_version %{nspr_version}
%global nss_version 3.80
%global nss_version 3.100
%global nss_build_version %{nss_version}
%endif
@ -90,30 +80,30 @@ ExcludeArch: s390x
%global libvpx_version 1.8.2
%endif
%global disable_elfhack 1
# cbingen
%global use_bundled_cbindgen 1
# Use clang?
%global build_with_clang 0
%bcond_without toolchain_clang
%if %{with toolchain_clang}
%global toolchain clang
%endif
# https://bugzilla.redhat.com/show_bug.cgi?id=1908792
# https://bugzilla.redhat.com/show_bug.cgi?id=2255254
%global __provides_exclude_from ^%{icecatappdir}
%global __requires_exclude_from ^%{icecatappdir}
%global __requires_exclude ^(%%(find %{buildroot}%{icecatappdir} -name '*.so' | xargs -n1 basename | sort -u | paste -s -d '|' -))
Name: icecat
Epoch: 1
Version: 102.10.0
Epoch: 4
Version: 140.7.0
Release: %autorelease -e %{redhat_ver}
Summary: GNU version of Firefox browser
# Tri-licensing scheme for Gnuzilla/IceCat in parentheses, and licenses for the extensions included
License: (MPL-1.1 or GPL-2.0-or-later or LGPL-2.1-or-later) and GPL-3.0-or-later and MIT and BSD and ISC and Apache-2.0 and MPL-2.0
URL: http://www.gnu.org/software/gnuzilla/
License: (MPL-1.1 OR GPL-2.0-or-later OR LGPL-2.1-or-later) AND GPL-3.0-or-later AND MIT AND BSD-4-Clause-UC AND ISC AND Apache-2.0 AND MPL-2.0
URL: http://www.gnu.org/software/gnuzilla/
## Source archive created by scripts based on Gnuzilla files.
## Modified files are hosted in a dedicated fork repository:
## All modified files are hosted in a dedicated fork repository:
## https://gitlab.com/anto.trande/icecat
Source0: %{name}-%{version}-%{redhat_ver}.tar.bz2
@ -121,7 +111,7 @@ Source2: %{name}.png
Source3: %{name}-mozconfig-common
# Language files downloaded by source7 script
%if 0%{?build_langpacks}
%if %{with langpacks}
Source4: %{name}-%{version}-langpacks.tar.gz
%endif
@ -134,65 +124,27 @@ Source5: %{name}-COPYING-licensefiles.tar.gz
Source7: %{name}-lang_download.sh
# Desktop files
Source9: %{name}-wayland.desktop
Source10: %{name}.appdata.xml
Source12: %{name}-wayland.sh.in
Source13: %{name}.sh.in
Source14: %{name}.desktop
Source15: %{name}-x11.sh.in
Source16: %{name}-x11.desktop
# cbingen
Source17: cbindgen-vendor.tar.xz
Source18: node-stdout-nonblocking-wrapper
Source19: run-wayland-compositor
# Build patches
# Fixes installation of those addons which don't have ID on IceCat ("Cannot find id for addon" error).
Patch1: %{name}-fix_addon_installation.patch
Patch2: %{name}-libevent_linkflag.patch
Patch3: mozilla-build-arm.patch
Patch4: %{name}-build-arm-libaom.patch
Patch5: rhbz-1219542-s390-build.patch
# If cbindgen=0.24
Patch6: mozilla-1773336.patch
Patch40: build-aarch64-skia.patch
Patch41: build-disable-elfhack.patch
Patch44: build-arm-libopus.patch
Patch54: mozilla-1669639.patch
# Fedora specific patches
Patch219: rhbz-1173156.patch
Patch220: firefox-nss-version.patch
Patch221: firefox-nss-addon-hack.patch
Patch223: %{name}-glibc-dynstack.patch
Patch224: %{name}-GLIBCXX-fix-for-GCC-12.patch
Patch225: %{name}-102.7.0-fix_gcc13_build.patch
# ARM run-time patch
Patch226: rhbz-1354671.patch
# Upstream patches
Patch401: icecat-1742849.patch
Patch402: mozilla-1196777.patch
Patch403: icecat-python3.11-open-U.patch
Patch404: icecat-python3.11-regex-inline-flags.patch
Patch412: mozilla-1337988.patch
Patch422: mozilla-1580174-webrtc-popup.patch
# Fix crash on ppc64le (mozilla#1512162)
Patch423: mozilla-1512162.patch
# PGO/LTO patches
Patch600: %{name}-pgo.patch
Patch602: mozilla-1516803.patch
#VA-API patches
Patch584: firefox-disable-ffvpx-with-vapi.patch
Patch585: firefox-vaapi-extra-frames.patch
Patch603: %{name}-gcc-always-inline.patch
BuildRequires: alsa-lib-devel
BuildRequires: autoconf213
@ -211,7 +163,6 @@ BuildRequires: desktop-file-utils
BuildRequires: dos2unix
BuildRequires: gcc, gcc-c++
BuildRequires: make
BuildRequires: fedora-bookmarks
BuildRequires: freetype-devel
BuildRequires: gdk-pixbuf2
BuildRequires: glib2-devel
@ -253,9 +204,12 @@ BuildRequires: nss-static >= %{nss_version}
%endif
BuildRequires: pango-devel
BuildRequires: pciutils-libs
BuildRequires: pipewire-devel
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3.11-devel
BuildRequires: python3-orjson
BuildRequires: perl-interpreter
BuildRequires: pkgconfig(xrender)
BuildRequires: pkgconfig(libstartup-notification-1.0)
@ -264,25 +218,36 @@ BuildRequires: pkgconfig(libcurl)
%if %{with pulseaudio}
BuildRequires: pulseaudio-libs-devel
%endif
BuildRequires: yasm
BuildRequires: llvm
BuildRequires: llvm-devel
BuildRequires: clang
BuildRequires: clang-libs
BuildRequires: clang-devel
%if 0%{?build_with_clang}
BuildRequires: lld
%if 0%{?fedora} >= 42 || 0%{?rhel} >= 10
BuildRequires: clang19
BuildRequires: clang19-libs
BuildRequires: llvm19-devel
BuildRequires: compiler-rt19
%global llvm_suffix -19
%else
BuildRequires: clang17
BuildRequires: clang17-libs
BuildRequires: llvm17-devel
BuildRequires: compiler-rt17
%global llvm_suffix -17
%endif
%if "%toolchain" == "clang"
BuildRequires: lld
%endif
BuildRequires: rust
BuildRequires: rustfmt
%if 0%{?pgo_wayland}
BuildRequires: xorg-x11-server-Xvfb
BuildRequires: mutter
BuildRequires: gsettings-desktop-schemas
BuildRequires: gnome-settings-daemon
BuildRequires: mesa-dri-drivers
BuildRequires: mesa-libEGL
BuildRequires: xorg-x11-server-Xwayland
%endif
%if 0%{?build_with_pgo}
BuildRequires: xorg-x11-server-Xvfb
BuildRequires: dbus-x11
BuildRequires: gnome-keyring
%endif
%if 0%{?big_endian}
@ -298,11 +263,13 @@ Requires: nspr >= %{nspr_build_version}
Requires: nss >= %{nss_build_version}
%endif
%if 0%{?fedora}
BuildRequires: fedora-bookmarks
Requires: fedora-bookmarks
Suggests: mozilla-ublock-origin
%endif
Suggests: mozilla-ublock-origin
Provides: webclient
Provides: bundled(mozilla-https-everywhere) = 2022.5.11
%description
GNU IceCat is the GNU version of the Firefox ESR browser.
@ -311,10 +278,13 @@ Extensions included to this version of IceCat:
* LibreJS
GNU LibreJS aims to address the JavaScript problem described in the article
"The JavaScript Trap" of Richard Stallman.
* HTTPS Everywhere
HTTPS Everywhere is an extension that encrypts your communications with
many major websites, making your browsing more secure.
* JShelter: Mitigates potential threats from JavaScript, including fingerprinting,
tracking, and data collection. Slightly modifies the results of API calls,
differently on different domains, so that the cross-site fingerprint is not
stable. Applies security counter-measures that are likely not to break web pages.
Allows fine-grained control over the restrictions and counter-measures applied
to each domain.
* A set of companion extensions for LibreJS by Nathan Nichols
are pre-installed, and provide workarounds to use some services at USPS,
@ -326,78 +296,38 @@ Extensions included to this version of IceCat:
requested. This implies not downloading feeds, updates, blacklists or any
other similar data needed during startup.
%package x11
Summary: GNU IceCat X11 launcher
Requires: %{name}%{?_isa}
%description x11
The %{name}-x11 package contains launcher and desktop file
to run GNU IceCat native on X11.
%package wayland
Summary: GNU IceCat Wayland launcher
Requires: %{name}%{?_isa}
Obsoletes: %{name} < 0:78.6.1-1
%description wayland
The icecat-wayland package contains launcher and desktop file
to run GNU IceCat native on Wayland.
%if %{with langpacks_subpkg}
%package langpacks
Summary: IceCat langpacks
Requires: %{name} = 4:%{version}-%{release}
%description langpacks
The icecat-langpacks package contains all the localization
and translations langpack add-ons.
%files langpacks -f %{name}.lang
%dir %{langpackdir}
%endif
%prep
%autosetup -N -n %{name}-%{version}
# Fix permissions
#find . -type f -name "*.h" -exec chmod 0644 '{}' \;
#find . -type f -name "*.cpp" -exec chmod 0644 '{}' \;
#find . -type f -name "*.cc" -exec chmod 0644 '{}' \;
#find . -type f -name "*.c" -exec chmod 0644 '{}' \;
# Copy license files
tar -xf %{SOURCE5}
%patch1 -p1 -b .fix_addon_installation
#patch2 -p0 -b .libevent_linkflag
%patch3 -p1 -b .build-arm-libaom
%patch4 -p1 -b .arm
%ifarch s390
%patch5 -p1 -b .rhbz-1219542-s390
%endif
%patch6 -p1 -b .1773336
%if 0%{?disable_elfhack}
%patch41 -p1 -b .disable-elfhack
%endif
# Fedora patches
%patch219 -p1 -b .rhbz-1173156
%patch221 -p1 -b .firefox-nss-addon-hack
%patch224 -p1 -b .glibcxx
%patch225 -p1 -b .gcc13
%if 0%{?fedora}
%patch -P 221 -p 1 -b .firefox-nss-addon-hack
%endif
%patch -P 224 -p 1 -b .glibcxx
# ARM run-time patch
%ifarch aarch64
%patch40 -p1 -b .aarch64-skia
%patch226 -p1 -b .1354671
# ARM64
%ifarch %{arm64}
%patch -P 226 -p 1 -b .1354671
%endif
%ifarch %{arm}
%patch44 -p1 -b .build-arm-libopus
%endif
%patch402 -p1 -b .1196777
%ifarch %{power64}
%patch423 -p1 -b .1512162
%endif
#%%patch584 -p1 -b .firefox-disable-ffvpx-with-vapi
#%%patch585 -p1 -b .firefox-vaapi-extra-frames
%patch54 -p1 -b .1669639
# PGO patches
%if 0%{?build_with_pgo}
%if !%{build_with_clang}
%patch600 -p1 -b .pgo
%patch602 -p1 -b .1516803
%endif
%patch -P 423 -p 1 -b .1512162
%endif
%patch -P 603 -p1 -b .inline
# Remove default configuration and copy the customized one
rm -f .mozconfig
@ -414,7 +344,7 @@ echo "ac_add_options --disable-webrtc" >> .mozconfig
# Hide DRM Content option
# This option does not work on other architectures
%ifarch x86_64 %{ix86}
%ifarch x86_64
echo "ac_add_options --disable-eme" >> .mozconfig
%endif
@ -450,16 +380,7 @@ echo "ac_add_options --without-system-libvpx" >> .mozconfig
echo "ac_add_options --with-system-jpeg" >> .mozconfig
echo "ac_add_options --enable-ffmpeg" >> .mozconfig
# This option works on these architectures only
%ifarch %{arm}
echo "ac_add_options --disable-elf-hack" >> .mozconfig
echo "ac_add_options --disable-av1" >> .mozconfig
echo 'export NEON_FLAGS=-mfpu=vfpv3-d16' >> .mozconfig
%endif
%ifnarch %{arm}
echo "ac_add_options --enable-av1" >> .mozconfig
%endif
%if 0%{?debug_build}
echo "ac_add_options --enable-debug" >> .mozconfig
@ -467,10 +388,6 @@ echo "ac_add_options --disable-optimize" >> .mozconfig
echo "ac_add_options --enable-rust-debug" >> .mozconfig
%else
%global optimize_flags "none"
%ifarch %{arm} s390x
# ARMv7 need that (rhbz#1426850)
%define optimize_flags " -fno-schedule-insns"
%endif
%if %{?optimize_flags} != "none"
echo 'ac_add_options --enable-optimize=%{?optimize_flags}' >> .mozconfig
%else
@ -484,11 +401,15 @@ echo "ac_add_options --disable-tests" >> .mozconfig
echo "ac_add_options --disable-crashreporter" >> .mozconfig
# Localization
%if 0%{?build_langpacks}
%if %{with langpacks}
echo "ac_add_options --with-l10n-base=$PWD/l10n" >> .mozconfig
%endif
%ifarch s390x
%if "%toolchain" == "clang"
echo "ac_add_options --with-libclang-path=`llvm-config%{?llvm_suffix} --libdir`" >> .mozconfig
%endif
%ifarch s390x %{arm64}
echo "ac_add_options --disable-jit" >> .mozconfig
%endif
@ -515,7 +436,6 @@ find extensions/gnu -name cose.manifest -delete
%build
# cbindgen
%if 0%{?use_bundled_cbindgen}
mkdir -p my_rust_vendor
cd my_rust_vendor
%{__tar} xf %{SOURCE17}
@ -529,8 +449,15 @@ replace-with = "vendored-sources"
directory = "`pwd`/my_rust_vendor"
EOL
# note: if you need to support cargo 1.38 or earlier, you can symlink `config` to `config.toml`
pushd .cargo
mv config config.toml
popd
env CARGO_HOME=.cargo cargo install cbindgen
export PATH=`pwd`/.cargo/bin:$PATH
%else
export CBINDGEN=/usr/bin/cbindgen
%endif
mkdir %{_buildrootdir}/bin || :
@ -555,11 +482,6 @@ MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2/-O0/')
# Workaround for mozbz#1531309
MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-Werror=format-security//')
# Use hardened build?
%if %{?hardened_build}
MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fPIC -Wl,-z,relro -Wl,-z,now"
%endif
%ifarch s390x
MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/')
# If MOZ_DEBUG_FLAGS is empty, firefox's build will default it to "-g" which
@ -568,104 +490,88 @@ MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/')
export MOZ_DEBUG_FLAGS=" "
%endif
%ifarch %{arm} %{ix86}
MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g0/')
# If MOZ_DEBUG_FLAGS is empty, firefox's build will default it to "-g" which
# overrides the -g1 from line above and breaks building on s390
# (OOM when linking, rhbz#1238225)
export MOZ_DEBUG_FLAGS=" "
%endif
# We don't wantfirefox to use CK_GCM_PARAMS_V3 in nss
# We don't want firefox to use CK_GCM_PARAMS_V3 in nss
MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -DNSS_PKCS11_3_0_STRICT"
%if !0%{?build_with_clang}
%ifarch s390x %{power64} aarch64 %{ix86}
MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads -Wl,--print-memory-usage"
%endif
%ifarch %{arm}
MOZ_LINK_FLAGS="-Wl,--no-keep-memory"
echo "ac_add_options --enable-linker=gold" >> .mozconfig
%if "%toolchain" != "clang"
%ifarch s390x %{power64} %{arm64}
MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
%endif
%endif
%ifarch %{arm} %{ix86} s390x
export RUSTFLAGS="-Cdebuginfo=0"
%else
# Otherwise since https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/243 breaks build.
unset RUSTFLAGS
%endif
export CFLAGS=$MOZ_OPT_FLAGS
export CXXFLAGS="$MOZ_OPT_FLAGS -fpermissive"
export LDFLAGS=$MOZ_LINK_FLAGS
%ifarch s390x
export RUSTFLAGS="-Cdebuginfo=0"
%endif
# error "STL code can only be used with -fno-exceptions"
CXXFLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-fexceptions/-fno-exceptions/')
export CXXFLAGS="$CXXFLAGS"
export CXXFLAGS="$CXXFLAGS -fpermissive -std=gnu++17"
export CFLAGS="$MOZ_OPT_FLAGS -std=gnu17"
export LDFLAGS="%{__global_ldflags} $MOZ_LINK_FLAGS -L%{_libdir} -L%{icecatappdir}"
export PREFIX='%{_prefix}'
export LIBDIR='%{_libdir}'
export PKG_CONFIG='%{_bindir}/pkg-config'
export PKG_CONFIG="`which pkg-config`"
export PYTHON='%{__python3}'
%if 0%{?build_with_clang}
export LLVM_PROFDATA="llvm-profdata"
export AR="llvm-ar"
export NM="llvm-nm"
export RANLIB="llvm-ranlib"
%if "%toolchain" == "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
echo "export CC=clang%{?llvm_suffix}" >> .mozconfig
echo "export CXX=clang++%{?llvm_suffix}" >> .mozconfig
%else
export CC=gcc
export CXX=g++
export AR="gcc-ar"
export NM="gcc-nm"
export RANLIB="gcc-ranlib"
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
# PGO build doesn't work with ccache
export CCACHE_DISABLE=1
%endif
# Require 4 GB of RAM per CPU core
%global _smp_tasksize_proc 4096
%if %{?less_optbuild}
MOZ_SMP_FLAGS=-j1
echo "mk_add_options MOZ_MAKE_FLAGS=\"-j1\"" >> .mozconfig
%else
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 %{arm} aarch64
[ -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
[ "$RPM_BUILD_NCPUS" -ge 24 ] && MOZ_SMP_FLAGS=-j24
[ "$RPM_BUILD_NCPUS" -ge 32 ] && MOZ_SMP_FLAGS=-j32
[ "$RPM_BUILD_NCPUS" -ge 64 ] && MOZ_SMP_FLAGS=-j64
%endif
echo "mk_add_options MOZ_MAKE_FLAGS=\"-j%{_smp_build_ncpus}\"" >> .mozconfig
%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 0%{?launch_wayland_compositor}
cp -p %{SOURCE19} .
. ./run-wayland-compositor
. ./run-wayland-compositor
%endif
#export MACH_USE_SYSTEM_PYTHON=1
%if 0%{?build_with_pgo}
%if 0%{?pgo_wayland}
env | grep "WAYLAND"
MOZ_ENABLE_WAYLAND=1 ./mach build -v 2>&1 | cat - && exit 1
%else
xvfb-run ./mach build 2>&1 | cat - || exit 1
%if %{?debug_build}
export CARGO_PROFILE_RELEASE_BUILD_OVERRIDE_DEBUG=true
%endif
%else
#Use python 3.11 for mach
sed -i -e 's|#!/usr/bin/env python3|#!/usr/bin/env python3.11|' mach
./mach build -v 2>&1 | cat - || exit 1
%if 0%{?build_with_pgo}
kill $MUTTER_PID
%endif
%install
# set up our default bookmarks
%if 0%{?fedora}
%global default_bookmarks_file %{_datadir}/bookmarks/default-bookmarks.html
cp -p %{default_bookmarks_file} objdir/dist/bin/browser/chrome/en-US/locale/browser/bookmarks.html
%endif
%make_install -C objdir
@ -682,24 +588,11 @@ desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE14}
rm -rf %{buildroot}%{_bindir}/%{name}
%{__sed} -e 's,/__PREFIX__,%{_prefix},g' %{SOURCE13} > %{buildroot}%{_bindir}/%{name}
chmod 755 %{buildroot}%{_bindir}/%{name}
%{__sed} -e 's,/__PREFIX__,%{_prefix},g' %{SOURCE15} > %{buildroot}%{_bindir}/%{name}-x11
chmod 755 %{buildroot}%{_bindir}/%{name}-x11
desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE16}
%{__sed} -e 's,/__PREFIX__,%{_prefix},g' %{SOURCE12} > %{buildroot}%{_bindir}/%{name}-wayland
chmod 755 %{buildroot}%{_bindir}/%{name}-wayland
desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE9}
#
##Install man page
mkdir -p %{buildroot}%{_mandir}/man1
install -p -m 644 %{name}.1 %{buildroot}%{_mandir}/man1/
##Extract langpacks, make any mods needed, repack the langpack, and install it.
%if 0%{?build_langpacks}
echo > %{name}.lang
%if %{with langpacks}
mkdir -p %{buildroot}%{langpackdir}
tar xf %{SOURCE4}
for langpack in `ls langpacks/*.xpi`; do
@ -760,9 +653,6 @@ ln -sf %{icecatappdir}/%{name}-bin ${RPM_BUILD_ROOT}%{icecatappdir}/%{name}
rm -rf ${RPM_BUILD_ROOT}%{icecatappdir}/dictionaries
ln -s %{_datadir}/hunspell ${RPM_BUILD_ROOT}%{icecatappdir}/dictionaries
# Copy over run-icecat.sh
cp -p build/unix/run-%{name}.sh %{buildroot}%{icecatappdir}/
# Remove unused directories
rm -rf %{buildroot}%{_libdir}/%{icecat_devel}
rm -rf %{buildroot}%{_datadir}/idl/%{icecat_ver}
@ -798,10 +688,11 @@ end
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.appdata.xml
desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
%if 0%{?build_langpacks}
%files -f %{name}.lang
%else
%if %{with langpacks_subpkg}
%files
%dir %{langpackdir}
%else
%files -f %{name}.lang
%endif
%doc README.* AUTHORS
%license LICENSE COPYING-*
@ -809,8 +700,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
%{_datadir}/applications/%{name}.desktop
%{_datadir}/icons/hicolor/*x*/apps/%{name}*.png
%{_metainfodir}/*.appdata.xml
%{_mandir}/man1/%{name}*
%dir %{icecatappdir}
%{icecatappdir}/glxtest
%{icecatappdir}/vaapitest
%{icecatappdir}/browser/
%{icecatappdir}/defaults/
%{icecatappdir}/dictionaries
@ -819,22 +711,12 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
%{icecatappdir}/*.so
%{icecatappdir}/*.ini
%{icecatappdir}/omni.ja
%{icecatappdir}/run-icecat.sh
%{icecatappdir}/dependentlibs.list
%{icecatappdir}/plugin-container
%{icecatappdir}/pingsender
%{icecatappdir}/gmp-clearkey/
%if 0%{?build_langpacks}
%dir %{langpackdir}
%ifarch %{arm64} riscv64
%{icecatappdir}/v4l2test
%endif
%files x11
%{_bindir}/%{name}-x11
%{_datadir}/applications/%{name}-x11.desktop
%files wayland
%{_bindir}/%{name}-wayland
%{_datadir}/applications/%{name}-wayland.desktop
%changelog
%autochangelog

View file

@ -1,14 +0,0 @@
diff -up firefox-100.0/widget/gtk/nsWindow.cpp.1196777 firefox-100.0/widget/gtk/nsWindow.cpp
--- firefox-100.0/widget/gtk/nsWindow.cpp.1196777 2022-05-02 11:29:06.763325015 +0200
+++ firefox-100.0/widget/gtk/nsWindow.cpp 2022-05-02 11:30:49.100717334 +0200
@@ -163,7 +163,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,

View file

@ -1,496 +0,0 @@
diff -up firefox-56.0/dom/plugins/base/nsJSNPRuntime.cpp.1337988 firefox-56.0/dom/plugins/base/nsJSNPRuntime.cpp
--- firefox-56.0/dom/plugins/base/nsJSNPRuntime.cpp.1337988 2017-09-14 22:15:56.000000000 +0200
+++ firefox-56.0/dom/plugins/base/nsJSNPRuntime.cpp 2017-09-25 10:34:11.205611698 +0200
@@ -1719,7 +1719,7 @@ NPObjWrapper_ObjectMoved(JSObject *obj,
auto entry =
static_cast<NPObjWrapperHashEntry*>(sNPObjWrappers->Search(npobj));
MOZ_ASSERT(entry && entry->mJSObj);
- MOZ_ASSERT(entry->mJSObj == old);
+ MOZ_ASSERT(entry->mJSObj.unbarrieredGetPtr() == old);
entry->mJSObj = obj;
}
diff -up firefox-56.0/js/ipc/JavaScriptShared.cpp.1337988 firefox-56.0/js/ipc/JavaScriptShared.cpp
--- firefox-56.0/js/ipc/JavaScriptShared.cpp.1337988 2017-07-31 18:20:47.000000000 +0200
+++ firefox-56.0/js/ipc/JavaScriptShared.cpp 2017-09-25 10:34:11.205611698 +0200
@@ -101,7 +101,7 @@ IdToObjectMap::has(const ObjectId& id, c
auto p = table_.lookup(id);
if (!p)
return false;
- return p->value() == obj;
+ return p->value().unbarrieredGet() == obj;
}
#endif
diff -up firefox-56.0/js/public/RootingAPI.h.1337988 firefox-56.0/js/public/RootingAPI.h
--- firefox-56.0/js/public/RootingAPI.h.1337988 2017-07-31 18:20:47.000000000 +0200
+++ firefox-56.0/js/public/RootingAPI.h 2017-09-25 10:34:11.206611695 +0200
@@ -148,6 +148,10 @@ template<typename T>
struct PersistentRootedMarker;
} /* namespace gc */
+#define DECLARE_POINTER_COMPARISON_OPS(T) \
+ bool operator==(const T& other) const { return get() == other; } \
+ bool operator!=(const T& other) const { return get() != other; }
+
// Important: Return a reference so passing a Rooted<T>, etc. to
// something that takes a |const T&| is not a GC hazard.
#define DECLARE_POINTER_CONSTREF_OPS(T) \
@@ -237,8 +241,6 @@ class Heap : public js::HeapBase<T, Heap
static_assert(js::IsHeapConstructibleType<T>::value,
"Type T must be a public GC pointer type");
public:
- using ElementType = T;
-
Heap() {
static_assert(sizeof(T) == sizeof(Heap<T>),
"Heap<T> must be binary compatible with T.");
@@ -385,8 +387,6 @@ template <typename T>
class TenuredHeap : public js::HeapBase<T, TenuredHeap<T>>
{
public:
- using ElementType = T;
-
TenuredHeap() : bits(0) {
static_assert(sizeof(T) == sizeof(TenuredHeap<T>),
"TenuredHeap<T> must be binary compatible with T.");
@@ -394,6 +394,9 @@ class TenuredHeap : public js::HeapBase<
explicit TenuredHeap(T p) : bits(0) { setPtr(p); }
explicit TenuredHeap(const TenuredHeap<T>& p) : bits(0) { setPtr(p.getPtr()); }
+ bool operator==(const TenuredHeap<T>& other) { return bits == other.bits; }
+ bool operator!=(const TenuredHeap<T>& other) { return bits != other.bits; }
+
void setPtr(T newPtr) {
MOZ_ASSERT((reinterpret_cast<uintptr_t>(newPtr) & flagsMask) == 0);
if (newPtr)
@@ -470,8 +473,6 @@ class MOZ_NONHEAP_CLASS Handle : public
friend class JS::MutableHandle<T>;
public:
- using ElementType = T;
-
/* Creates a handle from a handle of a type convertible to T. */
template <typename S>
MOZ_IMPLICIT Handle(Handle<S> handle,
@@ -533,6 +534,7 @@ class MOZ_NONHEAP_CLASS Handle : public
MOZ_IMPLICIT Handle(MutableHandle<S>& root,
typename mozilla::EnableIf<mozilla::IsConvertible<S, T>::value, int>::Type dummy = 0);
+ DECLARE_POINTER_COMPARISON_OPS(T);
DECLARE_POINTER_CONSTREF_OPS(T);
DECLARE_NONPOINTER_ACCESSOR_METHODS(*ptr);
@@ -559,8 +561,6 @@ template <typename T>
class MOZ_STACK_CLASS MutableHandle : public js::MutableHandleBase<T, MutableHandle<T>>
{
public:
- using ElementType = T;
-
inline MOZ_IMPLICIT MutableHandle(Rooted<T>* root);
inline MOZ_IMPLICIT MutableHandle(PersistentRooted<T>* root);
@@ -589,6 +589,7 @@ class MOZ_STACK_CLASS MutableHandle : pu
return h;
}
+ DECLARE_POINTER_COMPARISON_OPS(T);
DECLARE_POINTER_CONSTREF_OPS(T);
DECLARE_NONPOINTER_ACCESSOR_METHODS(*ptr);
DECLARE_NONPOINTER_MUTABLE_ACCESSOR_METHODS(*ptr);
@@ -805,8 +806,6 @@ class MOZ_RAII Rooted : public js::Roote
}
public:
- using ElementType = T;
-
template <typename RootingContext>
explicit Rooted(const RootingContext& cx)
: ptr(GCPolicy<T>::initial())
@@ -839,6 +838,7 @@ class MOZ_RAII Rooted : public js::Roote
ptr = mozilla::Move(value);
}
+ DECLARE_POINTER_COMPARISON_OPS(T);
DECLARE_POINTER_CONSTREF_OPS(T);
DECLARE_POINTER_ASSIGN_OPS(Rooted, T);
DECLARE_NONPOINTER_ACCESSOR_METHODS(ptr);
@@ -903,14 +903,13 @@ template <typename T>
class MOZ_RAII FakeRooted : public RootedBase<T, FakeRooted<T>>
{
public:
- using ElementType = T;
-
template <typename CX>
explicit FakeRooted(CX* cx) : ptr(JS::GCPolicy<T>::initial()) {}
template <typename CX>
FakeRooted(CX* cx, T initial) : ptr(initial) {}
+ DECLARE_POINTER_COMPARISON_OPS(T);
DECLARE_POINTER_CONSTREF_OPS(T);
DECLARE_POINTER_ASSIGN_OPS(FakeRooted, T);
DECLARE_NONPOINTER_ACCESSOR_METHODS(ptr);
@@ -931,8 +930,6 @@ template <typename T>
class FakeMutableHandle : public js::MutableHandleBase<T, FakeMutableHandle<T>>
{
public:
- using ElementType = T;
-
MOZ_IMPLICIT FakeMutableHandle(T* t) {
ptr = t;
}
@@ -1124,8 +1121,6 @@ class PersistentRooted : public js::Root
}
public:
- using ElementType = T;
-
PersistentRooted() : ptr(GCPolicy<T>::initial()) {}
explicit PersistentRooted(RootingContext* cx)
@@ -1203,6 +1198,7 @@ class PersistentRooted : public js::Root
}
}
+ DECLARE_POINTER_COMPARISON_OPS(T);
DECLARE_POINTER_CONSTREF_OPS(T);
DECLARE_POINTER_ASSIGN_OPS(PersistentRooted, T);
DECLARE_NONPOINTER_ACCESSOR_METHODS(ptr);
@@ -1234,8 +1230,6 @@ class JS_PUBLIC_API(ObjectPtr)
Heap<JSObject*> value;
public:
- using ElementType = JSObject*;
-
ObjectPtr() : value(nullptr) {}
explicit ObjectPtr(JSObject* obj) : value(obj) {}
@@ -1342,177 +1336,6 @@ Swap(JS::TenuredHeap<T>& aX, JS::Tenured
} /* namespace mozilla */
-namespace js {
-namespace detail {
-
-// DefineComparisonOps is a trait which selects which wrapper classes to define
-// operator== and operator!= for. It supplies a getter function to extract the
-// value to compare. This is used to avoid triggering the automatic read
-// barriers where appropriate.
-//
-// If DefineComparisonOps is not specialized for a particular wrapper you may
-// get errors such as 'invalid operands to binary expression' or 'no match for
-// operator==' when trying to compare against instances of the wrapper.
-
-template <typename T>
-struct DefineComparisonOps : mozilla::FalseType {};
-
-template <typename T>
-struct DefineComparisonOps<JS::Heap<T>> : mozilla::TrueType {
- static const T& get(const JS::Heap<T>& v) { return v.unbarrieredGet(); }
-};
-
-template <typename T>
-struct DefineComparisonOps<JS::TenuredHeap<T>> : mozilla::TrueType {
- static const T get(const JS::TenuredHeap<T>& v) { return v.unbarrieredGetPtr(); }
-};
-
-template <>
-struct DefineComparisonOps<JS::ObjectPtr> : mozilla::TrueType {
- static const JSObject* get(const JS::ObjectPtr& v) { return v.unbarrieredGet(); }
-};
-
-template <typename T>
-struct DefineComparisonOps<JS::Rooted<T>> : mozilla::TrueType {
- static const T& get(const JS::Rooted<T>& v) { return v.get(); }
-};
-
-template <typename T>
-struct DefineComparisonOps<JS::Handle<T>> : mozilla::TrueType {
- static const T& get(const JS::Handle<T>& v) { return v.get(); }
-};
-
-template <typename T>
-struct DefineComparisonOps<JS::MutableHandle<T>> : mozilla::TrueType {
- static const T& get(const JS::MutableHandle<T>& v) { return v.get(); }
-};
-
-template <typename T>
-struct DefineComparisonOps<JS::PersistentRooted<T>> : mozilla::TrueType {
- static const T& get(const JS::PersistentRooted<T>& v) { return v.get(); }
-};
-
-template <typename T>
-struct DefineComparisonOps<js::FakeRooted<T>> : mozilla::TrueType {
- static const T& get(const js::FakeRooted<T>& v) { return v.get(); }
-};
-
-template <typename T>
-struct DefineComparisonOps<js::FakeMutableHandle<T>> : mozilla::TrueType {
- static const T& get(const js::FakeMutableHandle<T>& v) { return v.get(); }
-};
-
-} /* namespace detail */
-} /* namespace js */
-
-// Overload operator== and operator!= for all types with the DefineComparisonOps
-// trait using the supplied getter.
-//
-// There are four cases:
-
-// Case 1: comparison between two wrapper objects.
-
-template <typename T, typename U>
-typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value &&
- js::detail::DefineComparisonOps<U>::value, bool>::Type
-operator==(const T& a, const U& b) {
- return js::detail::DefineComparisonOps<T>::get(a) == js::detail::DefineComparisonOps<U>::get(b);
-}
-
-template <typename T, typename U>
-typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value &&
- js::detail::DefineComparisonOps<U>::value, bool>::Type
-operator!=(const T& a, const U& b) {
- return !(a == b);
-}
-
-// Case 2: comparison between a wrapper object and its unwrapped element type.
-
-template <typename T>
-typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value, bool>::Type
-operator==(const T& a, const typename T::ElementType& b) {
- return js::detail::DefineComparisonOps<T>::get(a) == b;
-}
-
-template <typename T>
-typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value, bool>::Type
-operator!=(const T& a, const typename T::ElementType& b) {
- return !(a == b);
-}
-
-template <typename T>
-typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value, bool>::Type
-operator==(const typename T::ElementType& a, const T& b) {
- return a == js::detail::DefineComparisonOps<T>::get(b);
-}
-
-template <typename T>
-typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value, bool>::Type
-operator!=(const typename T::ElementType& a, const T& b) {
- return !(a == b);
-}
-
-// Case 3: For pointer wrappers, comparison between the wrapper and a const
-// element pointer.
-
-template <typename T>
-typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value &&
- mozilla::IsPointer<typename T::ElementType>::value, bool>::Type
-operator==(const typename mozilla::RemovePointer<typename T::ElementType>::Type* a, const T& b) {
- return a == js::detail::DefineComparisonOps<T>::get(b);
-}
-
-template <typename T>
-typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value &&
- mozilla::IsPointer<typename T::ElementType>::value, bool>::Type
-operator!=(const typename mozilla::RemovePointer<typename T::ElementType>::Type* a, const T& b) {
- return !(a == b);
-}
-
-template <typename T>
-typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value &&
- mozilla::IsPointer<typename T::ElementType>::value, bool>::Type
-operator==(const T& a, const typename mozilla::RemovePointer<typename T::ElementType>::Type* b) {
- return js::detail::DefineComparisonOps<T>::get(a) == b;
-}
-
-template <typename T>
-typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value &&
- mozilla::IsPointer<typename T::ElementType>::value, bool>::Type
-operator!=(const T& a, const typename mozilla::RemovePointer<typename T::ElementType>::Type* b) {
- return !(a == b);
-}
-
-// Case 4: For pointer wrappers, comparison between the wrapper and nullptr.
-
-template <typename T>
-typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value &&
- mozilla::IsPointer<typename T::ElementType>::value, bool>::Type
-operator==(std::nullptr_t a, const T& b) {
- return a == js::detail::DefineComparisonOps<T>::get(b);
-}
-
-template <typename T>
-typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value &&
- mozilla::IsPointer<typename T::ElementType>::value, bool>::Type
-operator!=(std::nullptr_t a, const T& b) {
- return !(a == b);
-}
-
-template <typename T>
-typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value &&
- mozilla::IsPointer<typename T::ElementType>::value, bool>::Type
-operator==(const T& a, std::nullptr_t b) {
- return js::detail::DefineComparisonOps<T>::get(a) == b;
-}
-
-template <typename T>
-typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value &&
- mozilla::IsPointer<typename T::ElementType>::value, bool>::Type
-operator!=(const T& a, std::nullptr_t b) {
- return !(a == b);
-}
-
#undef DELETE_ASSIGNMENT_OPS
#endif /* js_RootingAPI_h */
diff -up firefox-56.0/js/src/gc/Barrier.h.1337988 firefox-56.0/js/src/gc/Barrier.h
--- firefox-56.0/js/src/gc/Barrier.h.1337988 2017-09-14 22:16:01.000000000 +0200
+++ firefox-56.0/js/src/gc/Barrier.h 2017-09-25 10:34:11.206611695 +0200
@@ -353,8 +353,8 @@ class WriteBarrieredBase : public Barrie
explicit WriteBarrieredBase(const T& v) : BarrieredBase<T>(v) {}
public:
- using ElementType = T;
+ DECLARE_POINTER_COMPARISON_OPS(T);
DECLARE_POINTER_CONSTREF_OPS(T);
// Use this if the automatic coercion to T isn't working.
@@ -612,13 +612,14 @@ class ReadBarriered : public ReadBarrier
return *this;
}
- const T& get() const {
- if (InternalBarrierMethods<T>::isMarkable(this->value))
- this->read();
+ const T get() const {
+ if (!InternalBarrierMethods<T>::isMarkable(this->value))
+ return JS::GCPolicy<T>::initial();
+ this->read();
return this->value;
}
- const T& unbarrieredGet() const {
+ const T unbarrieredGet() const {
return this->value;
}
@@ -626,9 +627,9 @@ class ReadBarriered : public ReadBarrier
return bool(this->value);
}
- operator const T&() const { return get(); }
+ operator const T() const { return get(); }
- const T& operator->() const { return get(); }
+ const T operator->() const { return get(); }
T* unsafeGet() { return &this->value; }
T const* unsafeGet() const { return &this->value; }
@@ -955,35 +956,6 @@ typedef ReadBarriered<WasmTableObject*>
typedef ReadBarriered<Value> ReadBarrieredValue;
-namespace detail {
-
-template <typename T>
-struct DefineComparisonOps<PreBarriered<T>> : mozilla::TrueType {
- static const T& get(const PreBarriered<T>& v) { return v.get(); }
-};
-
-template <typename T>
-struct DefineComparisonOps<GCPtr<T>> : mozilla::TrueType {
- static const T& get(const GCPtr<T>& v) { return v.get(); }
-};
-
-template <typename T>
-struct DefineComparisonOps<HeapPtr<T>> : mozilla::TrueType {
- static const T& get(const HeapPtr<T>& v) { return v.get(); }
-};
-
-template <typename T>
-struct DefineComparisonOps<ReadBarriered<T>> : mozilla::TrueType {
- static const T& get(const ReadBarriered<T>& v) { return v.unbarrieredGet(); }
-};
-
-template <>
-struct DefineComparisonOps<HeapSlot> : mozilla::TrueType {
- static const Value& get(const HeapSlot& v) { return v.get(); }
-};
-
-} /* namespace detail */
-
} /* namespace js */
#endif /* gc_Barrier_h */
diff -up firefox-56.0/js/src/jsapi-tests/testGCHeapPostBarriers.cpp.1337988 firefox-56.0/js/src/jsapi-tests/testGCHeapPostBarriers.cpp
--- firefox-56.0/js/src/jsapi-tests/testGCHeapPostBarriers.cpp.1337988 2017-09-14 22:16:02.000000000 +0200
+++ firefox-56.0/js/src/jsapi-tests/testGCHeapPostBarriers.cpp 2017-09-25 10:34:11.206611695 +0200
@@ -5,7 +5,6 @@
* 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 "mozilla/TypeTraits.h"
#include "mozilla/UniquePtr.h"
#include "js/RootingAPI.h"
diff -up firefox-56.0/js/src/vm/SharedMem.h.1337988 firefox-56.0/js/src/vm/SharedMem.h
--- firefox-56.0/js/src/vm/SharedMem.h.1337988 2017-06-15 22:52:29.000000000 +0200
+++ firefox-56.0/js/src/vm/SharedMem.h 2017-09-25 10:34:11.206611695 +0200
@@ -12,8 +12,8 @@
template<typename T>
class SharedMem
{
- // static_assert(mozilla::IsPointer<T>::value,
- // "SharedMem encapsulates pointer types");
+ static_assert(mozilla::IsPointer<T>::value,
+ "SharedMem encapsulates pointer types");
enum Sharedness {
IsUnshared,
diff -up firefox-56.0/js/xpconnect/src/XPCInlines.h.1337988 firefox-56.0/js/xpconnect/src/XPCInlines.h
--- firefox-56.0/js/xpconnect/src/XPCInlines.h.1337988 2017-09-14 22:16:03.000000000 +0200
+++ firefox-56.0/js/xpconnect/src/XPCInlines.h 2017-09-25 10:34:11.206611695 +0200
@@ -465,7 +465,7 @@ inline
void XPCWrappedNativeTearOff::JSObjectMoved(JSObject* obj, const JSObject* old)
{
MOZ_ASSERT(!IsMarked());
- MOZ_ASSERT(mJSObject == old);
+ MOZ_ASSERT(mJSObject.unbarrieredGetPtr() == old);
mJSObject = obj;
}
diff -up firefox-56.0/js/xpconnect/src/XPCWrappedNative.cpp.1337988 firefox-56.0/js/xpconnect/src/XPCWrappedNative.cpp
--- firefox-56.0/js/xpconnect/src/XPCWrappedNative.cpp.1337988 2017-09-14 22:16:03.000000000 +0200
+++ firefox-56.0/js/xpconnect/src/XPCWrappedNative.cpp 2017-09-25 10:34:11.207611692 +0200
@@ -874,7 +874,7 @@ void
XPCWrappedNative::FlatJSObjectMoved(JSObject* obj, const JSObject* old)
{
JS::AutoAssertGCCallback inCallback;
- MOZ_ASSERT(mFlatJSObject == old);
+ MOZ_ASSERT(mFlatJSObject.unbarrieredGetPtr() == old);
nsWrapperCache* cache = nullptr;
CallQueryInterface(mIdentity, &cache);
diff -up firefox-56.0/js/xpconnect/src/XPCWrappedNativeProto.cpp.1337988 firefox-56.0/js/xpconnect/src/XPCWrappedNativeProto.cpp
--- firefox-56.0/js/xpconnect/src/XPCWrappedNativeProto.cpp.1337988 2017-07-31 18:20:47.000000000 +0200
+++ firefox-56.0/js/xpconnect/src/XPCWrappedNativeProto.cpp 2017-09-25 10:34:11.207611692 +0200
@@ -101,7 +101,7 @@ XPCWrappedNativeProto::CallPostCreatePro
void
XPCWrappedNativeProto::JSProtoObjectFinalized(js::FreeOp* fop, JSObject* obj)
{
- MOZ_ASSERT(obj == mJSProtoObject, "huh?");
+ MOZ_ASSERT(obj == mJSProtoObject.unbarrieredGet(), "huh?");
#ifdef DEBUG
// Check that this object has already been swept from the map.
@@ -117,7 +117,7 @@ XPCWrappedNativeProto::JSProtoObjectFina
void
XPCWrappedNativeProto::JSProtoObjectMoved(JSObject* obj, const JSObject* old)
{
- MOZ_ASSERT(mJSProtoObject == old);
+ MOZ_ASSERT(mJSProtoObject.unbarrieredGet() == old);
mJSProtoObject.init(obj); // Update without triggering barriers.
}

View file

@ -1,7 +1,6 @@
diff -up firefox-68.0.1/js/xpconnect/src/XPCWrappedNative.cpp.1512162 firefox-68.0.1/js/xpconnect/src/XPCWrappedNative.cpp
--- firefox-68.0.1/js/xpconnect/src/XPCWrappedNative.cpp.1512162 2019-07-17 22:51:30.000000000 +0200
+++ firefox-68.0.1/js/xpconnect/src/XPCWrappedNative.cpp 2019-07-25 08:08:18.512528313 +0200
@@ -1092,7 +1092,7 @@ class MOZ_STACK_CLASS CallMethodHelper f
--- a/js/xpconnect/src/XPCWrappedNative.cpp.1512162 2019-07-17 22:51:30.000000000 +0200
+++ b/js/xpconnect/src/XPCWrappedNative.cpp 2019-07-25 08:08:18.512528313 +0200
@@ -1055,7 +1055,7 @@
MOZ_ALWAYS_INLINE bool GetOutParamSource(uint8_t paramIndex,
MutableHandleValue srcp) const;
@ -10,7 +9,7 @@ diff -up firefox-68.0.1/js/xpconnect/src/XPCWrappedNative.cpp.1512162 firefox-68
MOZ_ALWAYS_INLINE bool QueryInterfaceFastPath();
@@ -1139,7 +1139,7 @@ class MOZ_STACK_CLASS CallMethodHelper f
@@ -1102,7 +1102,7 @@
~CallMethodHelper();
@ -19,25 +18,3 @@ diff -up firefox-68.0.1/js/xpconnect/src/XPCWrappedNative.cpp.1512162 firefox-68
// Trace implementation so we can put our CallMethodHelper in a Rooted<T>.
void trace(JSTracer* aTrc);
@@ -1157,6 +1157,10 @@ bool XPCWrappedNative::CallMethod(XPCCal
return helper.get().Call();
}
+#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN)
+// Work around a compiler bug on ppc64le (bug 1512162).
+__attribute__ ((noinline,noclone))
+#endif
bool CallMethodHelper::Call() {
mCallContext.SetRetVal(JS::UndefinedValue());
@@ -1315,6 +1319,10 @@ bool CallMethodHelper::GetOutParamSource
return true;
}
+#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN)
+// Work around a compiler bug on ppc64le (bug 1512162).
+__attribute__ ((noinline,noclone))
+#endif
bool CallMethodHelper::GatherAndConvertResults() {
// now we iterate through the native params to gather and convert results
uint8_t paramCount = mMethodInfo->GetParamCount();

View file

@ -1,15 +0,0 @@
diff --git a/security/sandbox/linux/moz.build b/security/sandbox/linux/moz.build
--- a/security/sandbox/linux/moz.build
+++ b/security/sandbox/linux/moz.build
@@ -114,9 +114,8 @@
# gcc lto likes to put the top level asm in syscall.cc in a different partition
# from the function using it which breaks the build. Work around that by
# forcing there to be only one partition.
-for f in CONFIG["OS_CXXFLAGS"]:
- if f.startswith("-flto") and CONFIG["CC_TYPE"] != "clang":
- LDFLAGS += ["--param lto-partitions=1"]
+if CONFIG['CC_TYPE'] != 'clang':
+ LDFLAGS += ['--param', 'lto-partitions=1']
DEFINES["NS_NO_XPCOM"] = True
DisableStlWrapping()

View file

@ -1,51 +0,0 @@
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
--- a/widget/gtk/nsWindow.cpp
+++ b/widget/gtk/nsWindow.cpp
@@ -1155,6 +1155,28 @@
}
}
+bool IsPopupWithoutToplevelParent(nsMenuPopupFrame* aMenuPopupFrame) {
+ // Check if the popup is autocomplete (like tags autocomplete
+ // in the bookmark edit popup).
+ nsAtom* popupId = aMenuPopupFrame->GetContent()->GetID();
+ if (popupId && popupId->Equals(NS_LITERAL_STRING("PopupAutoComplete"))) {
+ return true;
+ }
+
+ // Check if the popup is in popupnotificationcontent (like choosing capture
+ // device when starting webrtc session).
+ nsIFrame* parentFrame = aMenuPopupFrame->GetParent();
+ if (!parentFrame) {
+ return false;
+ }
+ parentFrame = parentFrame->GetParent();
+ if (parentFrame && parentFrame->GetContent()->NodeName().EqualsLiteral(
+ "popupnotificationcontent")) {
+ return true;
+ }
+ return false;
+}
+
// Wayland keeps strong popup window hierarchy. We need to track active
// (visible) popup windows and make sure we hide popup on the same level
// before we open another one on that level. It means that every open
@@ -1211,10 +1233,14 @@
LOG(("...[%p] GetParentMenuWidget() = %p\n", (void*)this, parentWindow));
// If the popup is a regular menu but GetParentMenuWidget() returns
- // nullptr which means it's connected non-menu parent
- // (bookmark toolbar for instance).
+ // nullptr which means is not a submenu of any other menu.
// In this case use a parent given at nsWindow::Create().
- if (!parentWindow && !menuPopupFrame->IsContextMenu()) {
+ // But we have to avoid using mToplevelParentWindow in case the popup
+ // is in 'popupnotificationcontent' element or autocomplete popup,
+ // otherwise the popupnotification would disappear when for
+ // example opening a popup with microphone selection.
+ if (!parentWindow && !menuPopupFrame->IsContextMenu() &&
+ !IsPopupWithoutToplevelParent(menuPopupFrame)) {
parentWindow =
get_window_for_gtk_widget(GTK_WIDGET(mToplevelParentWindow));
}

View file

@ -1,15 +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)

View file

@ -1,14 +0,0 @@
diff -up firefox-101.0.1/gfx/webrender_bindings/webrender_ffi.h.old firefox-101.0.1/gfx/webrender_bindings/webrender_ffi.h
--- a/gfx/webrender_bindings/webrender_ffi.h.old 2022-06-09 10:31:16.122495733 +0200
+++ b/gfx/webrender_bindings/webrender_ffi.h 2022-06-09 10:31:22.880724352 +0200
@@ -73,10 +73,6 @@
struct WrPipelineIdAndEpoch;
using WrPipelineIdEpochs = nsTArray<WrPipelineIdAndEpoch>;
-#ifndef CBINDGEN_0_24
-const uint64_t ROOT_CLIP_CHAIN = ~0;
-#endif
-
} // namespace wr
} // namespace mozilla

View file

@ -1,14 +0,0 @@
diff -up firefox-52.0/gfx/skia/skia/include/core/SkPreConfig.h.arm firefox-52.0/gfx/skia/skia/include/core/SkPreConfig.h
--- firefox-52.0/gfx/skia/skia/include/core/SkPreConfig.h.arm 2017-03-03 13:53:52.480754536 +0100
+++ firefox-52.0/gfx/skia/skia/include/core/SkPreConfig.h 2017-03-03 13:56:01.476018102 +0100
@@ -203,6 +203,10 @@
#define SK_ARM_HAS_CRC32
#endif
+#if defined(__aarch64__)
+ #undef SK_ARM_HAS_NEON
+#endif
+
//////////////////////////////////////////////////////////////////////
#if !defined(SKIA_IMPLEMENTATION)

View file

@ -1,12 +0,0 @@
diff -up a/extensions/auth/nsAuthSambaNTLM.cpp.old b/extensions/auth/nsAuthSambaNTLM.cpp
--- a/extensions/auth/nsAuthSambaNTLM.cpp.old 2014-11-25 12:23:22.000000000 +0100
+++ b/extensions/auth/nsAuthSambaNTLM.cpp 2014-12-23 15:26:36.606674625 +0100
@@ -161,7 +161,7 @@
const char* username = PR_GetEnv("USER");
if (!username) return NS_ERROR_FAILURE;
- const char* const args[] = {"ntlm_auth",
+ const char* const args[] = {"/usr/bin/ntlm_auth",
"--helper-protocol",
"ntlmssp-client-1",
"--use-cached-creds",

View file

@ -1,23 +0,0 @@
diff -up firefox-55.0/js/src/old-configure.in.rhbz-1219542-s390 firefox-55.0/js/src/old-configure.in
--- firefox-55.0/js/src/old-configure.in.rhbz-1219542-s390 2017-07-31 18:20:48.000000000 +0200
+++ firefox-55.0/js/src/old-configure.in 2017-08-02 14:31:32.190243669 +0200
@@ -541,7 +541,7 @@ case "$host" in
*-linux*|*-kfreebsd*-gnu|*-gnu*)
HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
- HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
+ HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O1}"
;;
*)
@@ -617,8 +617,8 @@ case "$target" in
*-*linux*)
if test "$GNU_CC" -o "$GNU_CXX"; then
- MOZ_PGO_OPTIMIZE_FLAGS="-O3"
- MOZ_OPTIMIZE_FLAGS="-O3"
+ MOZ_PGO_OPTIMIZE_FLAGS="-O1"
+ MOZ_OPTIMIZE_FLAGS="-O1"
if test -z "$CLANG_CC"; then
MOZ_OPTIMIZE_FLAGS="-freorder-blocks $MOZ_OPTIMIZE_FLAGS"
fi

View file

@ -20,21 +20,24 @@ 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
export WAYLAND_DISPLAY=icecat-pgo-wayland-0
if [ -S "$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY" ]; then
rm -f $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY
rm -f $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY.lock
fi
sleep 10
echo "Launch mutter for $WAYLAND_DISPLAY"
mutter --headless --virtual-monitor 1920x1080 --wayland-display=$WAYLAND_DISPLAY --no-x11 & MUTTER_PID=$!
export MUTTER_PID
echo "Mutter PID $MUTTER_PID"
echo "Waiting for mutter to start..."
sleep 5
retry_count=0
max_retries=5
until [ $retry_count -gt $max_retries ]; do
@ -47,4 +50,11 @@ until [ $retry_count -gt $max_retries ]; do
fi
done
env | grep "DISPLAY"
if [ ! -S "$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY" ]; then
echo "Mutter failed to start!"
exit 1
fi
echo "Mutter is running, $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY is here."

View file

@ -1,5 +1,5 @@
SHA512 (cbindgen-vendor.tar.xz) = d597b5422af9d3a3f9310bdad94c5897cf2605f5214ef4c447ad79612d81fbbb9d86b50a1b122b0000b54ada66bf6962c92b3b5ff8fc44e4167a18a532359cc4
SHA512 (icecat-102.10.0-langpacks.tar.gz) = 6f6d4d26c2e4b54b555f4caa6edcde7733c41b187ec7332289714d7eb8e3ca3923927f8c1586e2f5ac29fabcfacf9b2b25a26d69c0cb471e115304e2e5eb60a9
SHA512 (icecat-102.10.0-rh1.tar.bz2) = 17ddf8da02195a794ff6e6083d3c0ce970cf5f3d32eb4260a7b9792f32b85cbc01290f51a816c3944a4086b56bb311f39c5e4dd6cb9acba04e407f11a110716f
SHA512 (cbindgen-vendor.tar.xz) = 647dcadf3507bd05262613d03ff18a8c876bcbb4e83ce59f911128ae020ac16695298987c6c14f8b7a7aee5bb096740c6885c0a854d8b26431fc9a8ff864c369
SHA512 (icecat-140.7.0-langpacks.tar.gz) = a4618e3272b48be4307c79222bdd55f321aefb6d6ba08beb10178d0b95530bc4130cf86901d0906e714bd75106ad8513957fe3ad335431c8faf5b2d9767e17de
SHA512 (icecat-140.7.0-rh1.tar.bz2) = 7a19f7928322bea905828e6a4e981395687f1b649e37518a8000bcfcb29446b424ee592f708d0c7c93ebeb901820752785f883a937e9361e9f172a0a9bacb603
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
SHA512 (icecat.png) = a3cec16cb15a27c3c91b53e2c534e78b07911011ff1331e450c0baf8e13b76da7cea2a90e5d75191fa88cfbfd40a0a7f3e553e92b64d0043dadd5ad5edfdf81c