Compare commits

..

3 commits

Author SHA1 Message Date
sagitter
5ced2167e7 Merge branch 'master' into f28 2019-02-15 15:48:28 +01:00
sagitter
e472b3d745 Mozilla Release 60.4.0 2018-12-17 13:59:55 +01:00
sagitter
2fa5864652 Drop UserAgent patch (rhbz#1644898) 2018-11-01 11:21:30 +01:00
41 changed files with 4981 additions and 1003 deletions

232
.gitignore vendored
View file

@ -64,235 +64,3 @@
/icecat-60.4.0-gnu1.tar.bz2
/icecat-60.5.0-gnu1.tar.bz2
/icecat-60.5.1-gnu1.tar.bz2
/icecat-60.5.2-gnu1.tar.bz2
/icecat-60.6.0-gnu1.tar.bz2
/icecat-60.6.0-langpacks.tar.gz
/icecat-60.6.1-gnu1.tar.bz2
/icecat-60.6.1-langpacks.tar.gz
/icecat-60.6.1-gnu2.tar.bz2
/icecat-60.6.2-gnu1.tar.bz2
/icecat-60.6.3-gnu1.tar.bz2
/icecat-60.6.3-langpacks.tar.gz
/icecat-60.6.3-gnu2.tar.bz2
/icecat-60.7.0-gnu1.tar.bz2
/icecat-60.7.0-langpacks.tar.gz
/icecat-60.7.0-gnu2.tar.bz2
/icecat-60.7.1-gnu1.tar.bz2
/icecat-60.7.1-langpacks.tar.gz
/icecat-60.7.2-gnu1.tar.bz2
/icecat-60.7.2-langpacks.tar.gz
/icecat-60.8.0-gnu1.tar.bz2
/icecat-60.8.0-langpacks.tar.gz
/cbindgen-vendor.tar.xz
/icecat-68.0.2-gnu1.tar.bz2
/icecat-68.0.2-langpacks.tar.gz
/icecat-68.0.2-gnu2.tar.bz2
/icecat-68.0.2-gnu3.tar.bz2
/icecat-68.1.0-gnu1.tar.bz2
/icecat-68.1.0-langpacks.tar.gz
/icecat-68.2.0-gnu1.tar.bz2
/icecat-68.2.0-langpacks.tar.gz
/icecat-68.2.0-gnu2.tar.bz2
/icecat-68.3.0-gnu1.tar.bz2
/icecat-68.3.0-langpacks.tar.gz
/icecat-68.4.0-gnu1.tar.bz2
/icecat-68.4.0-rh1.tar.bz2
/icecat-68.4.0-langpacks.tar.gz
/icecat-68.4.0-rh2.tar.bz2
/icecat-68.4.1-langpacks.tar.gz
/icecat-68.4.1-rh1.tar.bz2
/icecat-68.5.0-langpacks.tar.gz
/icecat-68.5.0-rh1.tar.bz2
/icecat-68.6.0-rh1.tar.bz2
/icecat-68.6.0-langpacks.tar.gz
/icecat-68.6.0-rh2.tar.bz2
/icecat-68.6.0-rh3.tar.bz2
/icecat-68.6.0-rh4.tar.bz2
/icecat-68.7.0-langpacks.tar.gz
/icecat-68.7.0-rh1.tar.bz2
/icecat.png
/icecat-68.8.0-langpacks.tar.gz
/icecat-68.8.0-rh1.tar.bz2
/icecat-68.9.0-rh1.tar.bz2
/icecat-68.9.0-rh2.tar.bz2
/icecat-68.9.0-langpacks.tar.gz
/icecat-78.0-langpacks.tar.gz
/icecat-78.0-rh1.tar.bz2
/icecat-78.0.1-langpacks.tar.gz
/icecat-78.0.1-rh1.tar.bz2
/icecat-78.2.0-rh1.tar.bz2
/icecat-78.2.0-langpacks.tar.gz
/icecat-78.2.0-rh2.tar.bz2
/icecat-78.2.0-rh3.tar.bz2
/icecat-78.2.0-rh4.tar.bz2
/icecat-78.2.0-rh5.tar.bz2
/icecat-78.2.0-rh6.tar.bz2
/icecat-78.3.0-langpacks.tar.gz
/icecat-78.3.0-rh1.tar.bz2
/icecat-78.3.1-langpacks.tar.gz
/icecat-78.3.1-rh1.tar.bz2
/icecat-78.4.0-langpacks.tar.gz
/icecat-78.4.0-rh1.tar.bz2
/icecat-78.5.0-langpacks.tar.gz
/icecat-78.5.0-rh1.tar.bz2
/icecat-78.5.0-rh2.tar.bz2
/icecat-78.6.0-langpacks.tar.gz
/icecat-78.6.0-rh1.tar.bz2
/icecat-78.6.1-langpacks.tar.gz
/icecat-78.6.1-rh1.tar.bz2
/icecat-78.7.0-langpacks.tar.gz
/icecat-78.7.0-rh1.tar.bz2
/icecat-78.7.0-rh2.tar.bz2
/icecat-78.7.1-langpacks.tar.gz
/icecat-78.7.1-rh1.tar.bz2
/icecat-78.8.0-langpacks.tar.gz
/icecat-78.8.0-rh1.tar.bz2
/icecat-78.9.0-langpacks.tar.gz
/icecat-78.9.0-rh1.tar.bz2
/icecat-78.10.0-langpacks.tar.gz
/icecat-78.10.0-rh1.tar.bz2
/icecat-78.10.1-langpacks.tar.gz
/icecat-78.10.1-rh1.tar.bz2
/icecat-78.11.0-langpacks.tar.gz
/icecat-78.11.0-rh1.tar.bz2
/icecat-78.12.0-langpacks.tar.gz
/icecat-78.12.0-rh1.tar.bz2
/icecat-78.12.0-rh2.tar.bz2
/icecat-78.13.0-rh1.tar.bz2
/icecat-78.13.0-rh2.tar.bz2
/icecat-78.13.0-langpacks.tar.gz
/icecat-78.13.0-rh3.tar.bz2
/icecat-78.14.0-langpacks.tar.gz
/icecat-78.14.0-rh1.tar.bz2
/icecat-78.15.0-langpacks.tar.gz
/icecat-78.15.0-rh1.tar.bz2
/icecat-91.2.0-langpacks.tar.gz
/icecat-91.2.0-rh1.tar.bz2
/icecat-91.3.0-langpacks.tar.gz
/icecat-91.3.0-rh1.tar.bz2
/icecat-91.4.0-langpacks.tar.gz
/icecat-91.4.0-rh1.tar.bz2
/icecat-91.4.1-langpacks.tar.gz
/icecat-91.4.1-rh1.tar.bz2
/icecat-91.5.0-langpacks.tar.gz
/icecat-91.5.0-rh1.tar.bz2
/icecat-91.6.0-langpacks.tar.gz
/icecat-91.6.0-rh1.tar.bz2
/icecat-91.6.1-langpacks.tar.gz
/icecat-91.6.1-rh1.tar.bz2
/icecat-91.7.0-langpacks.tar.gz
/icecat-91.7.0-rh1.tar.bz2
/icecat-91.7.1-langpacks.tar.gz
/icecat-91.7.1-rh1.tar.bz2
/icecat-91.8.0-langpacks.tar.gz
/icecat-91.8.0-rh1.tar.bz2
/icecat-91.9.0-langpacks.tar.gz
/icecat-91.9.0-rh1.tar.bz2
/icecat-91.9.1-langpacks.tar.gz
/icecat-91.9.1-rh1.tar.bz2
/icecat-91.10.0-langpacks.tar.gz
/icecat-91.10.0-rh1.tar.bz2
/icecat-91.10.0-rh2.tar.bz2
/icecat-91.10.0-rh3.tar.bz2
/icecat-91.11.0-langpacks.tar.gz
/icecat-91.11.0-rh1.tar.bz2
/icecat-91.12.0-langpacks.tar.gz
/icecat-91.12.0-rh1.tar.bz2
/icecat-91.13.0-langpacks.tar.gz
/icecat-91.13.0-rh1.tar.bz2
/icecat-102.2.0-langpacks.tar.gz
/icecat-102.2.0-rh1.tar.bz2
/icecat-102.3.0-langpacks.tar.gz
/icecat-102.3.0-rh1.tar.bz2
/icecat-102.4.0-langpacks.tar.gz
/icecat-102.4.0-rh1.tar.bz2
/icecat-102.5.0-langpacks.tar.gz
/icecat-102.5.0-rh1.tar.bz2
/icecat-102.6.0-langpacks.tar.gz
/icecat-102.6.0-rh1.tar.bz2
/icecat-102.7.0-langpacks.tar.gz
/icecat-102.7.0-rh1.tar.bz2
/icecat-102.8.0-langpacks.tar.gz
/icecat-102.8.0-rh1.tar.bz2
/icecat-102.9.0-langpacks.tar.gz
/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

@ -0,0 +1,12 @@
diff -up firefox-60.0/mfbt/LinuxSignal.h.mozilla-1238661 firefox-60.0/mfbt/LinuxSignal.h
--- firefox-60.0/mfbt/LinuxSignal.h.mozilla-1238661 2018-04-27 08:55:38.848241768 +0200
+++ firefox-60.0/mfbt/LinuxSignal.h 2018-04-27 09:06:47.946769859 +0200
@@ -22,7 +22,7 @@
void* aContext) {
asm volatile("nop; nop; nop; nop" : : : "memory");
- asm volatile("b %0" : : "X"(H) : "memory");
+ asm volatile("bx %0" : : "r"(H), "l"(aSignal), "l"(aInfo), "l"(aContext) : "memory");
}
#define MOZ_SIGNAL_TRAMPOLINE(h) (mozilla::SignalTrampoline<h>)

View file

@ -1,41 +0,0 @@
[GNU IceCat](https://www.gnu.org/software/gnuzilla/) is the GNU version of the Firefox ESR browser.
Extensions included to this version of IceCat:
* LibreJS
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.
* 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).
The gNewSense BurningDog browser and the Debian IceWeasel browser are similarly derived from Firefox, also with the intent of being free software. Technically, however, these projects are maintained entirely independently of IceCat. (Previously, this GNU browser project was also named IceWeasel, but that proved confusing.)
About GNU and the GNU Philosophy
The [GNU Project](https://www.gnu.org/) was launched in 1984 to develop a complete Unix-like operating system which is [free software—free as in freedom, not price](https://www.gnu.org/philosophy/free-sw.html). Its principal sponsor is the [Free Software Foundation](https://www.fsf.org/).
The [free software philosophy](https://www.gnu.org/philosophy/philosophy.html) is the root and motivation of the guidelines and goals of the whole free software movement, a worldwide community.

View file

@ -0,0 +1,75 @@
# HG changeset patch
# User Lars T Hansen <lhansen@mozilla.com>
# Date 1519822672 -3600
# Wed Feb 28 13:57:52 2018 +0100
# Node ID 672f0415217b202ae59a930769dffd9d6ba6b87c
# Parent 825fd04dacc6297d3a980ec4184079405950b35d
Bug 1375074 - Save and restore non-volatile x28 on ARM64 for generated unboxed object constructor.
diff --git a/js/src/jit-test/tests/bug1375074.js b/js/src/jit-test/tests/bug1375074.js
new file mode 100644
--- /dev/null
+++ b/js/src/jit-test/tests/bug1375074.js
@@ -0,0 +1,18 @@
+// This forces the VM to start creating unboxed objects and thus stresses a
+// particular path into generated code for a specialized unboxed object
+// constructor.
+
+var K = 2000; // 2000 should be plenty
+var s = "[";
+var i;
+for ( i=0; i < K-1; i++ )
+ s = s + `{"i":${i}},`;
+s += `{"i":${i}}]`;
+var v = JSON.parse(s);
+
+assertEq(v.length == K, true);
+
+for ( i=0; i < K; i++) {
+ assertEq(v[i] instanceof Object, true);
+ assertEq(v[i].i, i);
+}
diff --git a/js/src/vm/UnboxedObject.cpp b/js/src/vm/UnboxedObject.cpp
--- a/js/src/vm/UnboxedObject.cpp
+++ b/js/src/vm/UnboxedObject.cpp
@@ -86,8 +86,15 @@
#endif
#ifdef JS_CODEGEN_ARM64
- // ARM64 communicates stack address via sp, but uses a pseudo-sp for
- // addressing.
+ // ARM64 communicates stack address via sp, but uses a pseudo-sp (PSP) for
+ // addressing. The register we use for PSP may however also be used by
+ // calling code, and it is nonvolatile, so save it. Do this as a special
+ // case first because the generic save/restore code needs the PSP to be
+ // initialized already.
+ MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64()));
+ masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex));
+
+ // Initialize the PSP from the SP.
masm.initStackPtr();
#endif
@@ -239,7 +246,22 @@
if (ScratchDoubleReg.volatile_()) masm.pop(ScratchDoubleReg);
masm.PopRegsInMask(savedNonVolatileRegisters);
+#ifdef JS_CODEGEN_ARM64
+ // Now restore the value that was in the PSP register on entry, and return.
+
+ // Obtain the correct SP from the PSP.
+ masm.Mov(sp, PseudoStackPointer64);
+
+ // Restore the saved value of the PSP register, this value is whatever the
+ // caller had saved in it, not any actual SP value, and it must not be
+ // overwritten subsequently.
+ masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex));
+
+ // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong.
+ masm.Ret(vixl::lr);
+#else
masm.abiret();
+#endif
masm.bind(&failureStoreOther);

84
build-big-endian.patch Normal file
View file

@ -0,0 +1,84 @@
diff -up firefox-60.0/gfx/skia/skia/include/core/SkColorPriv.h.big-endian firefox-60.0/gfx/skia/skia/include/core/SkColorPriv.h
--- firefox-60.0/gfx/skia/skia/include/core/SkColorPriv.h.big-endian 2018-04-09 22:50:48.000000000 +0200
+++ firefox-60.0/gfx/skia/skia/include/core/SkColorPriv.h 2018-04-18 11:51:38.748680174 +0200
@@ -54,18 +54,19 @@ static inline U8CPU SkUnitScalarClampToB
*
* Here we enforce this constraint.
*/
-
+/*
#ifdef SK_CPU_BENDIAN
#define SK_RGBA_R32_SHIFT 24
#define SK_RGBA_G32_SHIFT 16
#define SK_RGBA_B32_SHIFT 8
#define SK_RGBA_A32_SHIFT 0
#else
+*/
#define SK_RGBA_R32_SHIFT 0
#define SK_RGBA_G32_SHIFT 8
#define SK_RGBA_B32_SHIFT 16
#define SK_RGBA_A32_SHIFT 24
-#endif
+/*#endif*/
#define SkGetPackedA32(packed) ((uint32_t)((packed) << (24 - SK_A32_SHIFT)) >> 24)
#define SkGetPackedR32(packed) ((uint32_t)((packed) << (24 - SK_R32_SHIFT)) >> 24)
diff -up firefox-60.0/gfx/skia/skia/include/core/SkImageInfo.h.big-endian firefox-60.0/gfx/skia/skia/include/core/SkImageInfo.h
--- firefox-60.0/gfx/skia/skia/include/core/SkImageInfo.h.big-endian 2018-04-09 22:50:48.000000000 +0200
+++ firefox-60.0/gfx/skia/skia/include/core/SkImageInfo.h 2018-04-18 11:51:38.748680174 +0200
@@ -84,7 +84,8 @@ enum SkColorType {
#elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A)
kN32_SkColorType = kRGBA_8888_SkColorType,
#else
- #error "SK_*32_SHIFT values must correspond to BGRA or RGBA byte order"
+ //#error "SK_*32_SHIFT values must correspond to BGRA or RGBA byte order"
+ kN32_SkColorType = kBGRA_8888_SkColorType
#endif
};
diff -up firefox-60.0/gfx/skia/skia/include/gpu/GrTypes.h.big-endian firefox-60.0/gfx/skia/skia/include/gpu/GrTypes.h
--- firefox-60.0/gfx/skia/skia/include/gpu/GrTypes.h.big-endian 2018-04-09 22:50:48.000000000 +0200
+++ firefox-60.0/gfx/skia/skia/include/gpu/GrTypes.h 2018-04-18 11:51:38.748680174 +0200
@@ -344,15 +344,13 @@ enum GrPixelConfig {
static const int kGrPixelConfigCnt = kLast_GrPixelConfig + 1;
// Aliases for pixel configs that match skia's byte order.
-#ifndef SK_CPU_LENDIAN
- #error "Skia gpu currently assumes little endian"
-#endif
#if SK_PMCOLOR_BYTE_ORDER(B,G,R,A)
static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfig;
#elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A)
static const GrPixelConfig kSkia8888_GrPixelConfig = kRGBA_8888_GrPixelConfig;
#else
- #error "SK_*32_SHIFT values must correspond to GL_BGRA or GL_RGBA format."
+ static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfig;
+ static const GrPixelConfig kSkiaGamma8888_GrPixelConfig = kSBGRA_8888_GrPixelConfig;
#endif
/**
diff -up firefox-60.0/gfx/skia/skia/src/core/SkColorData.h.big-endian firefox-60.0/gfx/skia/skia/src/core/SkColorData.h
--- firefox-60.0/gfx/skia/skia/src/core/SkColorData.h.big-endian 2018-04-18 13:42:06.980476156 +0200
+++ firefox-60.0/gfx/skia/skia/src/core/SkColorData.h 2018-04-18 13:42:50.493520552 +0200
@@ -31,18 +31,19 @@
*
* Here we enforce this constraint.
*/
-
+/*
#ifdef SK_CPU_BENDIAN
#define SK_BGRA_B32_SHIFT 24
#define SK_BGRA_G32_SHIFT 16
#define SK_BGRA_R32_SHIFT 8
#define SK_BGRA_A32_SHIFT 0
#else
+*/
#define SK_BGRA_B32_SHIFT 0
#define SK_BGRA_G32_SHIFT 8
#define SK_BGRA_R32_SHIFT 16
#define SK_BGRA_A32_SHIFT 24
-#endif
+//#endif
#if defined(SK_PMCOLOR_IS_RGBA) && defined(SK_PMCOLOR_IS_BGRA)
#error "can't define PMCOLOR to be RGBA and BGRA"

View file

@ -0,0 +1,12 @@
diff -up a/build/autoconf/icu.orig.m4 b/build/autoconf/icu.m4
--- a/build/autoconf/icu.orig.m4 2016-12-09 09:11:01.227317790 +0100
+++ b/build/autoconf/icu.m4 2016-12-09 09:18:40.608712247 +0100
@@ -78,7 +78,7 @@
# TODO: the l is actually endian-dependent
# We could make this set as 'l' or 'b' for little or big, respectively,
# but we'd need to check in a big-endian version of the file.
- ICU_DATA_FILE="icudt${version}l.dat"
+ ICU_DATA_FILE="icudt${version}b.dat"
MOZ_ICU_DATA_ARCHIVE=
fi

View file

@ -0,0 +1,12 @@
diff -up firefox-57.0b5/js/src/jit/AtomicOperations.h.jit-atomic-lucky firefox-57.0b5/js/src/jit/AtomicOperations.h
--- firefox-57.0b5/js/src/jit/AtomicOperations.h.jit-atomic-lucky 2017-10-06 12:34:02.338973607 +0200
+++ firefox-57.0b5/js/src/jit/AtomicOperations.h 2017-10-06 12:38:24.632622215 +0200
@@ -394,7 +394,7 @@
#elif defined(__s390__) || defined(__s390x__)
#include "jit/none/AtomicOperations-feeling-lucky.h"
#else
-#error "No AtomicOperations support provided for this platform"
+#include "jit/none/AtomicOperations-feeling-lucky.h"
#endif
#endif // jit_AtomicOperations_h

View file

@ -1,19 +0,0 @@
diff -up firefox-84.0.2/security/certverifier/NSSCertDBTrustDomain.cpp.nss-hack firefox-84.0.2/security/certverifier/NSSCertDBTrustDomain.cpp
--- firefox-84.0.2/security/certverifier/NSSCertDBTrustDomain.cpp.nss-hack 2021-01-11 12:12:02.585514543 +0100
+++ firefox-84.0.2/security/certverifier/NSSCertDBTrustDomain.cpp 2021-01-11 12:47:50.345984582 +0100
@@ -1619,6 +1619,15 @@ SECStatus InitializeNSS(const nsACString
return srv;
}
+ /* Sets the NSS_USE_ALG_IN_ANY_SIGNATURE bit.
+ * does not change NSS_USE_ALG_IN_CERT_SIGNATURE,
+ * so policy will still disable use of sha1 in
+ * certificate related signature processing. */
+ srv = NSS_SetAlgorithmPolicy(SEC_OID_SHA1, NSS_USE_ALG_IN_ANY_SIGNATURE, 0);
+ if (srv != SECSuccess) {
+ NS_WARNING("Unable to use SHA1 for Add-ons, expect broken/disabled Add-ons. See https://bugzilla.redhat.com/show_bug.cgi?id=1908018 for details.");
+ }
+
if (nssDbConfig == NSSDBConfig::ReadWrite) {
UniquePK11SlotInfo slot(PK11_GetInternalKeySlot());
if (!slot) {

2571
firefox-pipewire.patch Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,45 +0,0 @@
From efd5bc0715e5477318be95a76811cda0a89e8289 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= <emilio@crisal.io>
Date: Fri, 4 Mar 2022 12:00:26 +0100
Subject: [PATCH] GLIBCXX fix for GCC 12?
---
build/unix/stdc++compat/stdc++compat.cpp | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/build/unix/stdc++compat/stdc++compat.cpp b/build/unix/stdc++compat/stdc++compat.cpp
index 0180f6bcfa998..8d7a542ff11f0 100644
--- a/build/unix/stdc++compat/stdc++compat.cpp
+++ b/build/unix/stdc++compat/stdc++compat.cpp
@@ -24,6 +24,7 @@
GLIBCXX_3.4.27 is from gcc 10
GLIBCXX_3.4.28 is from gcc 10
GLIBCXX_3.4.29 is from gcc 11
+ GLIBCXX_3.4.30 is from gcc 12
This file adds the necessary compatibility tricks to avoid symbols with
version GLIBCXX_3.4.20 and bigger, keeping binary compatibility with
@@ -69,6 +70,19 @@ void __attribute__((weak)) __throw_bad_array_new_length() { MOZ_CRASH(); }
} // namespace std
#endif
+#if _GLIBCXX_RELEASE >= 12
+namespace std {
+
+/* This avoids the GLIBCXX_3.4.30 symbol version. */
+void __attribute__((weak))
+__glibcxx_assert_fail(const char* __file, int __line, const char* __function,
+ const char* __condition) {
+ MOZ_CRASH();
+}
+
+} // namespace std
+#endif
+
/* While we generally don't build with exceptions, we have some host tools
* that do use them. libstdc++ from GCC 5.0 added exception constructors with
* char const* argument. Older versions only have a constructor with
--
2.35.1

131
icecat-bz1445383.patch Normal file
View file

@ -0,0 +1,131 @@
# HG changeset patch
# User Peter Simonyi <pts@petersimonyi.ca>
# Date 1528570546 14400
# Node ID 643dfdce06c805659dbfd4f3d8a6e46ee8d3fe9d
# Parent 04cc917f68c5d554e5b9542cb3745c9453bba58d
Bug 1445383 - update ccache stats parser for ccache 3.4 and 3.5
MozReview-Commit-ID: KTr9RhkJN5B
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
@@ -752,16 +752,18 @@ class CCacheStats(object):
Instances can be subtracted from each other to obtain differences.
print() or str() the object to show a ``ccache -s`` like output
of the captured stats.
"""
STATS_KEYS = [
# (key, description)
# Refer to stats.c in ccache project for all the descriptions.
+ ('stats_zero_time', 'stats zero time'),
+ ('stats_updated', 'stats updated'),
('cache_hit_direct', 'cache hit (direct)'),
('cache_hit_preprocessed', 'cache hit (preprocessed)'),
('cache_hit_rate', 'cache hit rate'),
('cache_miss', 'cache miss'),
('link', 'called for link'),
('preprocessing', 'called for preprocessing'),
('multiple', 'multiple source files'),
('stdout', 'compiler produced stdout'),
@@ -833,16 +835,23 @@ class CCacheStats(object):
raise ValueError('Failed to parse ccache stats output: %s' % line)
@staticmethod
def _strip_prefix(line, prefix):
return line[len(prefix):].strip() if line.startswith(prefix) else line
@staticmethod
def _parse_value(raw_value):
+ try:
+ # ccache calls strftime with '%c' (src/stats.c)
+ ts = time.strptime(raw_value, '%c')
+ return int(time.mktime(ts))
+ except ValueError:
+ pass
+
value = raw_value.split()
unit = ''
if len(value) == 1:
numeric = value[0]
elif len(value) == 2:
numeric, unit = value
else:
raise ValueError('Failed to parse ccache stats value: %s' % raw_value)
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
@@ -1,14 +1,15 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
from __future__ import unicode_literals
+import time
import unittest
from mozunit import main
from mozbuild.controller.building import CCacheStats
class TestCcacheStats(unittest.TestCase):
@@ -169,16 +170,40 @@ class TestCcacheStats(unittest.TestCase)
unsupported code directive 2
no input file 2378
cleanups performed 1792
files in cache 3479
cache size 4.4 GB
max cache size 5.0 GB
"""
+ # Substitute a locally-generated timestamp because the timestamp format is
+ # locale-dependent.
+ STAT8 = """
+ cache directory /home/psimonyi/.ccache
+ primary config /home/psimonyi/.ccache/ccache.conf
+ secondary config (readonly) /etc/ccache.conf
+ stats zero time {timestamp}
+ cache hit (direct) 571
+ cache hit (preprocessed) 1203
+ cache miss 11747
+ cache hit rate 13.12 %
+ called for link 623
+ called for preprocessing 7194
+ compile failed 32
+ preprocessor error 137
+ bad compiler arguments 4
+ autoconf compile/link 348
+ no input file 162
+ cleanups performed 77
+ files in cache 13464
+ cache size 6.2 GB
+ max cache size 7.0 GB
+ """.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))
@@ -226,10 +251,15 @@ class TestCcacheStats(unittest.TestCase)
self.assertTrue(stat6)
self.assertTrue(stat3)
self.assertTrue(stats_diff)
# Test stats for 3.3.3.
stat7 = CCacheStats(self.STAT7)
self.assertTrue(stat7)
+ def test_stats_version34(self):
+ # Test parsing 3.4 output.
+ stat8 = CCacheStats(self.STAT8)
+ self.assertTrue(stat8)
+
if __name__ == '__main__':
main()

View file

@ -0,0 +1,12 @@
diff -up icecat-60.4.0/toolkit/components/remote/nsRemoteService.cpp.old icecat-60.4.0/toolkit/components/remote/nsRemoteService.cpp
--- icecat-60.4.0/toolkit/components/remote/nsRemoteService.cpp.old 2018-11-06 11:25:46.634929894 +0100
+++ icecat-60.4.0/toolkit/components/remote/nsRemoteService.cpp 2018-11-06 11:21:49.617828440 +0100
@@ -31,7 +31,7 @@
NS_IMETHODIMP
nsRemoteService::Startup(const char* aAppName, const char* aProfileName) {
-#if defined(MOZ_ENABLE_DBUS)
+#if 0
nsresult rv;
mDBusRemoteService = new nsDBusRemoteService();
rv = mDBusRemoteService->Startup(aAppName, aProfileName);

View file

@ -0,0 +1,54 @@
--- browser/installer/package-manifest.orig.in 2017-03-24 21:09:39.027022000 +0100
+++ browser/installer/package-manifest.in 2017-03-24 23:07:21.881504771 +0100
@@ -74,9 +74,9 @@
#endif
#ifndef MOZ_SYSTEM_NSPR
#ifndef MOZ_FOLD_LIBS
-@BINPATH@/@DLL_PREFIX@nspr4@DLL_SUFFIX@
-@BINPATH@/@DLL_PREFIX@plc4@DLL_SUFFIX@
-@BINPATH@/@DLL_PREFIX@plds4@DLL_SUFFIX@
+#@BINPATH@/@DLL_PREFIX@nspr4@DLL_SUFFIX@
+#@BINPATH@/@DLL_PREFIX@plc4@DLL_SUFFIX@
+#@BINPATH@/@DLL_PREFIX@plds4@DLL_SUFFIX@
#endif
#endif
#ifdef XP_MACOSX
@@ -610,11 +610,11 @@
@RESPATH@/chrome/recording.manifest
@RESPATH@/chrome/recording/*
#ifdef MOZ_GTK
-@RESPATH@/browser/chrome/icons/default/default16.png
-@RESPATH@/browser/chrome/icons/default/default32.png
-@RESPATH@/browser/chrome/icons/default/default48.png
-@RESPATH@/browser/chrome/icons/default/default64.png
-@RESPATH@/browser/chrome/icons/default/default128.png
+#@RESPATH@/browser/chrome/icons/default/default16.png
+#@RESPATH@/browser/chrome/icons/default/default32.png
+#@RESPATH@/browser/chrome/icons/default/default48.png
+@RESPATH@/browser/chrome/icons/default/default64.png
+@RESPATH@/browser/chrome/icons/default/default128.png
#endif
@RESPATH@/browser/features/*
--- browser/installer/allowed-dupes.orig.mn 2017-03-19 19:59:09.000000000 +0100
+++ browser/installer/allowed-dupes.mn 2017-03-24 23:15:37.026964374 +0100
@@ -752,3 +752,19 @@
browser/extensions/tprb.addon@searxes.danwin1210.me/manifest.json
browser/extensions/tprb.addon@searxes.danwin1210.me/tprb_dlg.html
browser/extensions/tprb.addon@searxes.danwin1210.me/style.css
+#
+browser/extensions/abouticecat@gnu.org/defaults/preferences/preferences.js
+browser/extensions/html5-video-everywhere@lejenome.me/bootstrap.js
+browser/chrome/browser/content/browser/aboutaccounts/images/fox.png
+browser/extensions/spyblock@gnu.org/chrome/content/ui/ext/common.js
+browser/extensions/spyblock@gnu.org/lib/ext_common.js
+browser/extensions/html5-video-everywhere@lejenome.me/LICENSE
+browser/extensions/html5-video-everywhere@lejenome.me/node_modules/h5vew-site-break/LICENSE
+browser/extensions/html5-video-everywhere@lejenome.me/node_modules/h5vew-site-dailymotion/LICENSE
+browser/extensions/html5-video-everywhere@lejenome.me/node_modules/h5vew-site-facebook/LICENSE
+browser/extensions/html5-video-everywhere@lejenome.me/node_modules/h5vew-site-metacafe/LICENSE
+browser/extensions/html5-video-everywhere@lejenome.me/node_modules/h5vew-site-vimeo/LICENSE
+browser/extensions/html5-video-everywhere@lejenome.me/node_modules/h5vew-site-youtube/LICENSE
+browser/extensions/spyblock@gnu.org/chrome/content/ui/skin/abp-128.png
+browser/extensions/spyblock@gnu.org/chrome/skin/abp-icon-big.png
+#

11
icecat-fix_jar.patch Normal file
View file

@ -0,0 +1,11 @@
--- browser/locales/jar.orig.mn 2017-03-19 19:59:09.000000000 +0100
+++ browser/locales/jar.mn 2017-03-22 19:49:57.602190867 +0100
@@ -12,7 +12,7 @@
@AB_CD@.jar:
% locale browser @AB_CD@ %locale/browser/
-* locale/browser/bookmarks.html (generic/profile/bookmarks.html.in)
+ locale/browser/bookmarks.html (generic/profile/bookmarks.html.in)
locale/browser/aboutDialog.dtd (%chrome/browser/aboutDialog.dtd)
locale/browser/aboutPrivateBrowsing.dtd (%chrome/browser/aboutPrivateBrowsing.dtd)
locale/browser/aboutPrivateBrowsing.properties (%chrome/browser/aboutPrivateBrowsing.properties)

View file

@ -1,14 +0,0 @@
diff -up firefox-114.0.2/gfx/wr/swgl/src/gl.cc.inline firefox-114.0.2/gfx/wr/swgl/src/gl.cc
--- firefox-114.0.2/gfx/wr/swgl/src/gl.cc.inline 2023-06-22 11:08:53.294593327 +0200
+++ firefox-114.0.2/gfx/wr/swgl/src/gl.cc 2023-06-22 11:12:43.663486734 +0200
@@ -58,9 +58,7 @@ WINBASEAPI BOOL WINAPI QueryPerformanceF
}
#else
-// GCC is slower when dealing with always_inline, especially in debug builds.
-// When using Clang, use always_inline more aggressively.
-# if defined(__clang__) || defined(NDEBUG)
+# if defined(__clang__) || defined (__GNUC__) || defined(NDEBUG)
# define ALWAYS_INLINE __attribute__((always_inline)) inline
# else
# define ALWAYS_INLINE inline

View file

@ -1,23 +1,18 @@
#!/bin/bash
VERSION=140.7.0
URL=https://ftp.mozilla.org/pub/firefox/releases/${VERSION}esr/linux-x86_64/xpi/
VERSION=60.2.0
URL=http://alpha.gnu.org/gnu/gnuzilla/$VERSION/langpacks/
for u in $URL; do
mkdir -p langpacks && pushd langpacks
wget -erobots=off -c -r -l1 -nd -nc -A.xpi -U langpacks $u
popd
mkdir -p langpacks && cd langpacks
wget -erobots=off -c -r -l1 -nd -nc -A.xpi -U langpacks $u
rm -f icecat-$VERSION.ja-JP-mac.langpack.xpi icecat-$VERSION.compare-locales.langpack.xpi
done
#pushd langpacks
#for u in `ls *.xpi`; do
# mv $u icecat-${VERSION}.$u
#done
#find . -type f -name '*.xpi' | while read FILE ; do
# newfile="$(echo ${FILE} |sed -e 's/.xpi/.langpack.xpi/g')" ;
# mv "${FILE}" "${newfile}" ;
#done
#popd
rm -f icecat-*-langpacks.tar.gz
tar -zcvf icecat-${VERSION}-langpacks.tar.gz langpacks
find . -type f -name '*.xpi' | while read FILE ; do
newfile="$(echo ${FILE} |sed -e 's/60.2.0.//g' -e 's/icecat-//g')" ;
mv "${FILE}" "${newfile}" ;
done
cd ..
tar -zcvf icecat-$VERSION-langpacks.tar.gz langpacks
rm -rf langpacks
exit 0

11
icecat-locale.patch Normal file
View file

@ -0,0 +1,11 @@
--- intl/icu/source/i18n/digitlst.orig.cpp 2017-07-25 16:08:42.000000000 +0000
+++ intl/icu/source/i18n/digitlst.cpp 2017-08-03 19:20:54.808813010 +0000
@@ -63,7 +63,7 @@
#if U_USE_STRTOD_L
# if U_HAVE_XLOCALE_H
-# include <xlocale.h>
+# include <c++/v1/support/xlocale/xlocale.h>
# else
# include <locale.h>
# endif

View file

@ -2,15 +2,20 @@
export BUILD_OFFICIAL=1
export MOZILLA_OFFICIAL=1
export MOZ_TELEMETRY_REPORTING=
export MOZ_TELEMETRY_REPORTING=1
mk_add_options BUILD_OFFICIAL=1
mk_add_options MOZILLA_OFFICIAL=1
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir
ac_add_options --without-wasm-sandboxed-libraries
ac_add_options --prefix="$PREFIX"
ac_add_options --libdir="$LIBDIR"
ac_add_options --with-pthreads
ac_add_options --enable-necko-wifi
ac_add_options --enable-startup-notification
ac_add_options --disable-updater
ac_add_options --enable-chrome-format=omni
ac_add_options --enable-release
ac_add_options --enable-pie
ac_add_options --disable-stylo
# Workaround for mozbz#1341234
ac_add_options BINDGEN_CFLAGS="$(pkg-config nspr pixman-1 --cflags)"

23
icecat-wayland.desktop Normal file
View file

@ -0,0 +1,23 @@
[Desktop Entry]
Version=1.0
Name=GNU IceCat\n 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\n 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

7
icecat-wayland.sh.in Normal file
View file

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

338
icecat-x11.desktop Normal file
View file

@ -0,0 +1,338 @@
[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 --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 --private-window %u

7
icecat-x11.sh.in Normal file
View file

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

151
icecat.1 Normal file
View file

@ -0,0 +1,151 @@
.TH ICECAT 1 "December 12, 2018" icecat "Linux User's Manual"
.SH NAME
IceCat \- GNU version of Firefox browser
.SH SYNOPSIS
.B icecat
[\fIOPTIONS\fR ...] [\fIURL\fR]
.B icecat-bin
[\fIOPTIONS\fR] [\fIURL\fR]
.SH DESCRIPTION
\fBGnuzilla IceCat\fR is an open-source web browser, designed for standards compliance, performance and portability.
GNUzilla is the GNU version of the Mozilla suite, and GNU IceCat is the GNU version of the Firefox browser. Its main advantage is an ethical one: it is entirely free software. While the Firefox source code from the Mozilla project is free software, they distribute and recommend non-free software as plug-ins and addons.
In addition, GNU IceCat includes some privacy protection features, included in a separate addon:
Some sites refer to zero-size images on other hosts to keep track of cookies. When IceCat detects this mechanism it blocks cookies from the site hosting the zero-length image file. (It is possible to re-enable such a site by removing it from the blocked hosts list.)
Other sites rewrite the host name in links redirecting the user to another site, mainly to "spy" on clicks. When this behavior is detected, IceCat shows a message alerting the user.
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).
.SH USAGE
\fBicecat\fR is a simple shell script that will set up the
environment for the actual executable, \fBicecat-bin\fR.
.SH OPTIONS
A summary of the options supported by \fBicecat\fR is included below.
.SS "X11 options"
.TP
.BI \-\-display= DISPLAY
X display to use
.TP
.B \--sync
Make X calls synchronous
.TP
.B \-\-g-fatal-warnings
Make all warnings fatal
.SS "IceCat options"
.TP
.B \-h, \-help
Show summary of options.
.TP
.B \-v, \-version
Print IceCat version.
.TP
\fB\-P\fR \fIprofile\fR
Start with \fIprofile\fR.
.TP
\fB\-\-profile\fR \fIpath\fR
Start with profile at \fIpath\fR.
.TP
\fB\-\-migration\fR
Start with migration wizard.
.TP
.B \-\-ProfileManager
Start with ProfileManager.
.TP
\fB\-\-no\-remote\fR
Do not accept or send remote commands; implies \fB--new-instance\fR.
.TP
\fB\-\-new\-instance\fR
Open new instance, not a new window in running instance.
.TP
\fB\-\-UILocale\fR \fIlocale\fR
Start with \fIlocale\fR resources as UI Locale.
.TP
\fB\-\-save\-mode\fR
Disables extensions and themes for this session.
.TP
\fB\-\-headless\fR
Run without a GUI.
.TP
\fB\-\-marionette\fR
Enable remote control server.
.TP
\fB\-\-browser\fR
Open a browser window.
.TP
\fB\-\-new-window\fR \fIurl\fR
Open \fIurl\fR in a new window.
.TP
\fB\-\-new-tab\fR \fIurl\fR
Open \fIurl\fR in a new tab.
.TP
\fB\-\-private-window\fR \fIurl\fR
Open \fIurl\fR in a new private window.
.TP
\fB\-\-preferences\fR
Open Preferences dialog.
.TP
\fB\-\-screenshot\fR [\fIpath\fR]
Save screenshot to \fIpath\fR or in working directory.
.TP
\fB\-\-window-size\fR \fIwidth\fR[,\fIheight\fR]
Width and optionally height of screenshot.
.TP
\fB\-\-search\fR \fIterm\fR
Search \fIterm\fR with your default search engine.
.TP
\fB\-\-jsconsole\fR
Open the Browser Console.
.TP
\fB\-\-jsdebugger\fR
Open the Browser Toolbox.
.TP
\fB\-\-wait-for-jsdebugger\fR
Spin event loop until JS debugger connects. Enables debugging (some) application startup code paths. Only has an effect when \fI--jsdebugger\fR is also supplied.
.TP
\fB\-\-devtools\fR
Open DevTools on initial load.
.TP
\fB\-\-start-debugger-server\fR [ws:][\fIport\fR|\fIpath\fR]
Start the debugger server on a TCP port or Unix domain socket path. Defaults to TCP port 6000. Use WebSocket protocol if ws: prefix is specified.
.TP
\fB\-\-recording\fR \fIfile\fR
Record drawing for a given URL.
.TP
\fB\-\-recording-output\fR \fIfile\fR
Specify destination file for a drawing recording.
.TP
\fB\-\-setDefaultBrowser\fR
Set this app as the default browser.
.SH FILES
\fI/usr/bin/icecat\fR - shell script wrapping
\fBicecat\fR
.br
\fI/usr/lib64/icecat/icecat-bin\fR - \fBicecat\fR
executable
.SH VERSION
60.x
.SH BUGS
To report a bug, please mail to bug-gnuzilla@gnu.org/\fR
.SH AUTHORS
.TP
.B For a full list of the people who are credited with making a contribution to Mozilla, see http://www.mozilla.org/credits/ .
.I http://www.mozilla.org/about.html
.TP
.B Tobias Girstmair
.I https://www.gnu.org/software/gnuzilla/

View file

@ -11,7 +11,7 @@
</categories>
<description>
<p>
GNU IceCat is the GNU version of the Firefox ESR browser.
GNUzilla is the GNU version of the Mozilla suite, and GNU IceCat is the GNU version of the Firefox ESR browser.
</p>
<p>
Its main advantage is an ethical one: it is entirely free software:
@ -22,41 +22,49 @@
<p>
Extensions included to this version of IceCat:
</p>
<ul>
<li>
<p>
LibreJS
GNU LibreJS aims to address the JavaScript problem described in Richard
Stallman's article The JavaScript Trap
</li>
<li>
HTTPS Everywhere
HTTPS Everywhere is an extension that encrypts your communications with many major websites, making your browsing more secure
</li>
<li>
Stallman's article The JavaScript Trap.
</p>
<p>
AboutIceCat
Adds a custom "about:icecat" homepage with links to information about the
free software and privacy features in IceCat, and check-boxes to enable
and disable the ones more prone to break websites.
</p>
<p>
HTML5-video-everywhere
Uses the native video player to play embedded videos from different sources
</p>
<p>
A set of companion extensions for LibreJS by Nathan Nichols (https://addons.mozilla.org/en-US/firefox/user/NateN1222/)
are pre-installed, and provide workarounds to use some services at USPS, RSF.org, SumOfUs.org, pay.gov, McDonald's, goteo.org
and Google Docs without using nonfree JavaScript.
</li>
<li>
</p>
<p>
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.
</li>
</ul>
</p>
<p>
Tor™ Browser Button
Simple TOR network integration (requires running TOR separately at the operating system level)
</p>
</description>
<url type="homepage">http://www.gnu.org/software/gnuzilla/</url>
<screenshots>
<screenshot type="default">
<image>https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat1021.png</image>
<image>https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat1.png</image>
</screenshot>
<screenshot>
<image>https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat1022.png</image>
<image>https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat2.png</image>
</screenshot>
<screenshot>
<image>https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat1023.png</image>
<image>https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat3.png</image>
</screenshot>
<screenshot>
<image>https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat1024.png</image>
<image>https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat4.png</image>
</screenshot>
</screenshots>
<updatecontact>sagitter_at_fedoraproject.org</updatecontact>

11
icecat.metainfo.xml Normal file
View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="addon">
<id>mozilla-requestpolicy</id>
<extends>icecat.desktop</extends>
<name>mozilla-requestpolicy</name>
<summary>Extension that gives you control over cross-site requests</summary>
<url type="homepage">https://requestpolicycontinued.github.io/</url>
<url type="bugtracker">https://github.com/requestpolicycontinued/requestpolicy/issues</url>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0+ and LGPL-3.0+</project_license>
</component>

BIN
icecat.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

View file

@ -1,7 +1,4 @@
# Whitelisting errors
# https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmlint#whitelist
# https://src.fedoraproject.org/rpms/python3/blob/master/f/python3.rpmlintrc
# Edited by sagitter (sagitter@fedoraproject.org)
# Edited by sagitter (sagitter AT fedoraproject dot org)
# KNOWN BUGS:
#
@ -12,43 +9,30 @@
# ifarch applied patches are okay
# https://fedoraproject.org/wiki/Packaging:Guidelines#Architecture_Support
addFilter(r'(%ifarch-applied-patch) Patch*')
# Different file size due to the signature of the source code tarbz archive
addFilter(r'file-size-mismatch')
addFilter(r'(invalid-url) Source0')
addFilter(r'(invalid-url) Source4')
addFilter(r'(invalid-url) Source5')
addFilter(r'(invalid-url) Source17')
addFilter(r'(strange-permission) icecat-lang_download.sh')
addFilter(r'(strange-permission) node-stdout-nonblocking-wrapper')
# ERRORS:
##### RPMs #####
# chroot function (??)
addFilter(r'(missing-call-to-chdir-with-chroot) /usr/lib64/icecat/libmozsandbox.so')
addFilter(r'(missing-call-to-setgroups-before-setuid) /usr/lib64/icecat/libxul.so')
addFilter(r'(missing-call-to-chdir-with-chroot) /usr/lib/icecat/libmozsandbox.so')
addFilter(r'(missing-call-to-setgroups-before-setuid) /usr/lib/icecat/libxul.so')
addFilter(r'(missing-call-to-chdir-with-chroot) %{_libdir}/icecat/libmozsandbox.so')
addFilter(r'(missing-call-to-setgroups-before-setuid) %{_libdir}/icecat/libxul.so')
# Expected on FF browser
# https://support.mozilla.org/en-US/questions/1045418
addFilter(r'(zero-length) /usr/lib(64)?/icecat/chrome.manifest')
addFilter(r'(zero-length) /usr/lib(64)?/icecat/browser/chrome.manifest')
addFilter(r'E:library-not-linked-against-libc /usr/lib64/icecat/gtk2/libmozgtk.so')
addFilter(r'E:library-not-linked-against-libc /usr/lib64/icecat/libmozgtk.so')
addFilter(r'E:library-not-linked-against-libc /usr/lib/icecat/gtk2/libmozgtk.so')
addFilter(r'E:library-not-linked-against-libc /usr/lib/icecat/libmozgtk.so')
addFilter(r'(zero-length) %{_libdir}/icecat/chrome.manifest')
addFilter(r'(zero-length) %{_libdir}/icecat/browser/chrome.manifest')
# False positive
addFilter(r'(dangling-symlink) /usr/lib(64)?/icecat/dictionaries /usr/share/myspell')
addFilter(r'(dangling-symlink) %{_libdir}/icecat/dictionaries %{_datadir}/myspell')
addFilter(r'(unversioned-explicit-provides) webclient')
# WARNINGS:
##### RPMs #####
addFilter(r'(no-manual-page-for-binary) icecat-wayland')
addFilter(r'(no-manual-page-for-binary) icecat-x11')
##### SRPMs #####
# Different file size due to the signature of the source code tarbz archive
addFilter(r'file-size-mismatch')
addFilter(r'(invalid-url) Source*')

View file

@ -39,12 +39,12 @@ cmdname=`basename $0`
MOZ_ARCH=$(uname -m)
case $MOZ_ARCH in
x86_64 | s390x | sparc64)
MOZ_LIB_DIR="/__PREFIX__/lib64"
SECONDARY_LIB_DIR="/__PREFIX__/lib"
MOZ_LIB_DIR="/usr/lib64"
SECONDARY_LIB_DIR="/usr/lib"
;;
* )
MOZ_LIB_DIR="/__PREFIX__/lib"
SECONDARY_LIB_DIR="/__PREFIX__/lib64"
MOZ_LIB_DIR="/usr/lib"
SECONDARY_LIB_DIR="/usr/lib64"
;;
esac
@ -64,35 +64,22 @@ 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/icecat"
GETENFORCE_FILE="/usr/sbin/getenforce"
MOZ_LAUNCHER="$MOZ_DIST_BIN/run-icecat.sh"
##
## Enable Wayland backend?
## Enable X11 backend by default?
##
if ! [ $MOZ_DISABLE_WAYLAND ] && [ "$WAYLAND_DISPLAY" ]; then
if [ "$XDG_CURRENT_DESKTOP" == "GNOME" ]; then
export MOZ_ENABLE_WAYLAND=1
fi
## Enable Wayland on KDE/Sway
##
if [ "$XDG_SESSION_TYPE" == "wayland" ]; then
export MOZ_ENABLE_WAYLAND=1
fi
fi
##
## Use D-Bus remote exclusively when there's Wayland display.
##
if [ "$WAYLAND_DISPLAY" ]; then
export MOZ_DBUS_REMOTE=1
if __DEFAULT_X11__; then
if ! [ "$GDK_BACKEND" ]; then
export GDK_BACKEND=x11
fi
fi
##
## Set MOZ_GRE_CONF
##
MOZ_GRE_CONF=/etc/gre.d/gre.conf
if [ "$MOZ_LIB_DIR" == "/__PREFIX__/lib64" ]; then
if [ "$MOZ_LIB_DIR" == "/usr/lib64" ]; then
MOZ_GRE_CONF=/etc/gre.d/gre64.conf
fi
export MOZ_GRE_CONF
@ -120,8 +107,7 @@ export MOZ_PLUGIN_PATH
##
## Set MOZ_APP_LAUNCHER for gnome-session
##
export MOZ_APP_LAUNCHER="/__PREFIX__/bin/icecat"
export MOZ_APP_LAUNCHER="/usr/bin/icecat"
##
## Set FONTCONFIG_PATH for Xft/fontconfig
@ -162,7 +148,7 @@ export MOZ_USE_XINPUT2=1
##
## To disable the use of IceCat localization, set MOZ_DISABLE_LANGPACKS=1
## To disable the use of Firefox localization, set MOZ_DISABLE_LANGPACKS=1
## in your environment before launching Firefox.
##
#
@ -181,19 +167,11 @@ MOZILLA_DOWN=0
if ! [ $MOZ_DISABLE_LANGPACKS ] || [ $MOZ_DISABLE_LANGPACKS -eq 0 ]; then
if [ -x $MOZ_DIST_BIN/$MOZ_FIREFOX_FILE ]; then
# Is icecat running?
/__PREFIX__/pidof icecat > /dev/null 2>&1
/usr/bin/pidof icecat > /dev/null 2>&1
MOZILLA_DOWN=$?
fi
fi
# When IceCat is not running, restore SELinux labels for profile files
# (rhbz#1731371)
if [ $MOZILLA_DOWN -ne 0 ]; then
if [ -x $GETENFORCE_FILE ] && [ `getenforce` != "Disabled" ]; then
(restorecon -vr ~/.mozilla/icecat/* &)
fi
fi
# Modify language pack configuration only when icecat is not running
# and language packs are not disabled
if [ $MOZILLA_DOWN -ne 0 ]; then
@ -213,8 +191,8 @@ if [ $MOZILLA_DOWN -ne 0 ]; then
CURRENT_LOCALE=${CURRENT_LOCALE:-$LANG}
# Try with a local variant first, then without a local variant
SHORTMOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*||g" | sed "s|\..*||g"`
MOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*|-\1|g" | sed "s|\..*||g"`
SHORTMOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*||g"`
MOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*|-\1|g"`
function create_langpack_link() {
local language=$*
@ -269,11 +247,13 @@ do
;;
esac
done
## Allow downgrade because during distro upgrade the build time can be
## older in newer version than the previous one.
##
export MOZ_ALLOW_DOWNGRADE=1
# Run the browser
debugging=0
if [ $debugging = 1 ]
then
echo $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@"
fi
exec $MOZ_PROGRAM "$@"
exec $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,30 @@
diff -up firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm.1005640-accept-lang firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm
--- firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm.1005640-accept-lang 2017-01-16 17:16:52.000000000 +0100
+++ firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm 2017-01-18 12:35:29.380394216 +0100
@@ -2852,6 +2852,11 @@ this.XPIProvider = {
this.addAddonsToCrashReporter();
}
+ // Save locale settings to compare it later to check whenever some addon
+ // changed it.
+ var previousLocale = Cc["@mozilla.org/chrome/chrome-registry;1"]
+ .getService(Ci.nsIXULChromeRegistry).getSelectedLocale("global");
+
try {
AddonManagerPrivate.recordTimestamp("XPI_bootstrap_addons_begin");
@@ -2880,6 +2885,14 @@ this.XPIProvider = {
AddonManagerPrivate.recordException("XPI-BOOTSTRAP", "startup failed", e);
}
+ var currentLocale = Cc["@mozilla.org/chrome/chrome-registry;1"]
+ .getService(Ci.nsIXULChromeRegistry).getSelectedLocale("global");
+ if (currentLocale != previousLocale) {
+ // We have to flush string cache if the locale was changed during loading
+ // of addons
+ Services.obs.notifyObservers(null, "chrome-flush-caches", null);
+ }
+
// Let these shutdown a little earlier when they still have access to most
// of XPCOM
Services.obs.addObserver({

27
mozilla-1353817.patch Normal file
View file

@ -0,0 +1,27 @@
From 1cc652f5525f458b0b4ceb12af24bf5a4367db32 Mon Sep 17 00:00:00 2001
From: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Date: Tue, 23 May 2017 13:09:48 -0400
Subject: [PATCH] Bug 1353817: Include SkNx_neon.h for ARM64 too
This fixes build errors as arm_neon.h was missing along with some
missing converters.
---
gfx/skia/skia/src/core/SkNx.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gfx/skia/skia/src/core/SkNx.h b/gfx/skia/skia/src/core/SkNx.h
index 6bca856..b0427aa 100644
--- a/gfx/skia/skia/src/core/SkNx.h
+++ b/gfx/skia/skia/src/core/SkNx.h
@@ -299,7 +299,7 @@ typedef SkNx<4, uint32_t> Sk4u;
// Include platform specific specializations if available.
#if !defined(SKNX_NO_SIMD) && SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2
#include "../opts/SkNx_sse.h"
-#elif !defined(SKNX_NO_SIMD) && defined(SK_ARM_HAS_NEON)
+#elif !defined(SKNX_NO_SIMD) && (defined(SK_ARM_HAS_NEON) || defined(SK_CPU_ARM64))
#include "../opts/SkNx_neon.h"
#else
--
2.9.4

188
mozilla-1424422.patch Normal file
View file

@ -0,0 +1,188 @@
diff -up firefox-60.0/browser/base/content/browser.js.1424422 firefox-60.0/browser/base/content/browser.js
--- firefox-60.0/browser/base/content/browser.js.1424422 2018-04-26 22:07:20.000000000 +0200
+++ firefox-60.0/browser/base/content/browser.js 2018-04-30 11:49:51.609458857 +0200
@@ -1259,6 +1259,9 @@ var gBrowserInit = {
if (AppConstants.CAN_DRAW_IN_TITLEBAR) {
gDragSpaceObserver.init();
+ if (AppConstants.platform == "linux") {
+ gLightThemeObserver.init();
+ }
}
BrowserSearch.initPlaceHolder();
@@ -1826,6 +1829,9 @@ var gBrowserInit = {
if (AppConstants.CAN_DRAW_IN_TITLEBAR) {
gDragSpaceObserver.uninit();
+ if (AppConstants.platform == "linux") {
+ gLightThemeObserver.uninit();
+ }
}
TabsInTitlebar.uninit();
@@ -5781,6 +5787,24 @@ var gDragSpaceObserver = {
},
};
+var gLightThemeObserver = {
+ init() {
+ Services.obs.addObserver(this, "lightweight-theme-styling-update");
+ },
+
+ uninit() {
+ Services.obs.removeObserver(this, "lightweight-theme-styling-update");
+ },
+
+ observe(aSubject, aTopic, aData) {
+ switch (aTopic) {
+ case "lightweight-theme-styling-update":
+ TabsInTitlebar.updateAppearance(true);
+ break;
+ }
+ },
+};
+
// Updates the UI density (for touch and compact mode) based on the uidensity pref.
var gUIDensity = {
MODE_NORMAL: 0,
diff -up firefox-60.0/browser/themes/linux/browser.css.1424422 firefox-60.0/browser/themes/linux/browser.css
--- firefox-60.0/browser/themes/linux/browser.css.1424422 2018-04-26 22:07:21.000000000 +0200
+++ firefox-60.0/browser/themes/linux/browser.css 2018-04-30 11:45:40.388172492 +0200
@@ -691,12 +691,34 @@ notification[value="translation"] menuli
padding-bottom: 2px;
}
+ /* When default theme is used render titlebar command buttons
+ * according to system config.
+ *
+ * When -moz-lwtheme is enabled use similar approach as on Windows platform.
+ */
+ .titlebar-button:-moz-lwtheme {
+ border: none;
+ margin: 0 !important;
+ padding: 8px 17px;
+ }
+ .titlebar-button:-moz-lwtheme > .toolbarbutton-icon {
+ width: 12px;
+ height: 12px;
+ }
+ .titlebar-button:hover:-moz-lwtheme {
+ background-color: Highlight;
+ }
+
/* Render titlebar command buttons according to system config.
* Use full scale icons here as the Gtk+ does.
*/
@media (-moz-gtk-csd-minimize-button) {
- #titlebar-min {
- -moz-appearance: -moz-window-button-minimize;
+ #titlebar-min:not(:-moz-lwtheme) {
+ -moz-appearance: -moz-window-button-minimize;
+ }
+ #titlebar-min:-moz-lwtheme {
+ -moz-appearance: none !important;
+ list-style-image: url(chrome://browser/skin/window-controls/minimize-themes.svg);
}
}
@media (-moz-gtk-csd-minimize-button: 0) {
@@ -706,12 +728,20 @@ notification[value="translation"] menuli
}
@media (-moz-gtk-csd-maximize-button) {
- #titlebar-max {
+ #titlebar-max:not(:-moz-lwtheme) {
-moz-appearance: -moz-window-button-maximize;
}
- :root[sizemode="maximized"] #titlebar-max {
+ #titlebar-max:-moz-lwtheme {
+ -moz-appearance: none !important;
+ list-style-image: url(chrome://browser/skin/window-controls/maximize-themes.svg);
+ }
+ :root[sizemode="maximized"] #titlebar-max:not(:-moz-lwtheme) {
-moz-appearance: -moz-window-button-restore;
}
+ :root[sizemode="maximized"] #titlebar-max:-moz-lwtheme {
+ -moz-appearance: none !important;
+ list-style-image: url(chrome://browser/skin/window-controls/restore-themes.svg);
+ }
}
@media (-moz-gtk-csd-maximize-button: 0) {
#titlebar-max {
@@ -720,9 +750,13 @@ notification[value="translation"] menuli
}
@media (-moz-gtk-csd-close-button) {
- #titlebar-close {
+ #titlebar-close:not(:-moz-lwtheme) {
-moz-appearance: -moz-window-button-close;
}
+ #titlebar-close:-moz-lwtheme {
+ -moz-appearance: none !important;
+ list-style-image: url(chrome://browser/skin/window-controls/close-themes.svg);
+ }
}
@media (-moz-gtk-csd-close-button: 0) {
#titlebar-close {
diff -up firefox-60.0/browser/themes/linux/jar.mn.1424422 firefox-60.0/browser/themes/linux/jar.mn
--- firefox-60.0/browser/themes/linux/jar.mn.1424422 2018-04-26 22:07:20.000000000 +0200
+++ firefox-60.0/browser/themes/linux/jar.mn 2018-04-30 11:45:40.388172492 +0200
@@ -49,9 +49,12 @@ browser.jar:
* skin/classic/browser/preferences/in-content/dialog.css (preferences/in-content/dialog.css)
skin/classic/browser/preferences/applications.css (preferences/applications.css)
skin/classic/browser/tabbrowser/tabDragIndicator.png (tabbrowser/tabDragIndicator.png)
-
skin/classic/browser/sync-desktopIcon.svg (../shared/sync-desktopIcon.svg)
skin/classic/browser/sync-mobileIcon.svg (../shared/sync-mobileIcon.svg)
+ skin/classic/browser/window-controls/close-themes.svg (window-controls/close-themes.svg)
+ skin/classic/browser/window-controls/maximize-themes.svg (window-controls/maximize-themes.svg)
+ skin/classic/browser/window-controls/minimize-themes.svg (window-controls/minimize-themes.svg)
+ skin/classic/browser/window-controls/restore-themes.svg (window-controls/restore-themes.svg)
skin/classic/browser/e10s-64@2x.png (../shared/e10s-64@2x.png)
[extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}] chrome.jar:
diff -up firefox-60.0/browser/themes/linux/window-controls/close-themes.svg.1424422 firefox-60.0/browser/themes/linux/window-controls/close-themes.svg
--- firefox-60.0/browser/themes/linux/window-controls/close-themes.svg.1424422 2018-04-30 11:45:40.388172492 +0200
+++ firefox-60.0/browser/themes/linux/window-controls/close-themes.svg 2018-04-30 11:45:40.388172492 +0200
@@ -0,0 +1,7 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<svg width="12" height="12" xmlns="http://www.w3.org/2000/svg">
+ <path stroke="black" stroke-width="3.6" stroke-opacity=".75" d="M1,1 l 10,10 M1,11 l 10,-10"/>
+ <path stroke="white" stroke-width="1.9" d="M1.75,1.75 l 8.5,8.5 M1.75,10.25 l 8.5,-8.5"/>
+</svg>
diff -up firefox-60.0/browser/themes/linux/window-controls/maximize-themes.svg.1424422 firefox-60.0/browser/themes/linux/window-controls/maximize-themes.svg
--- firefox-60.0/browser/themes/linux/window-controls/maximize-themes.svg.1424422 2018-04-30 11:45:40.388172492 +0200
+++ firefox-60.0/browser/themes/linux/window-controls/maximize-themes.svg 2018-04-30 11:45:40.388172492 +0200
@@ -0,0 +1,7 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<svg width="12" height="12" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges" fill="none">
+ <rect stroke="black" stroke-width="3.6" stroke-opacity=".75" x="2" y="2" width="8" height="8"/>
+ <rect stroke="white" stroke-width="1.9" x="2" y="2" width="8" height="8"/>
+</svg>
diff -up firefox-60.0/browser/themes/linux/window-controls/minimize-themes.svg.1424422 firefox-60.0/browser/themes/linux/window-controls/minimize-themes.svg
--- firefox-60.0/browser/themes/linux/window-controls/minimize-themes.svg.1424422 2018-04-30 11:45:40.388172492 +0200
+++ firefox-60.0/browser/themes/linux/window-controls/minimize-themes.svg 2018-04-30 11:45:40.388172492 +0200
@@ -0,0 +1,7 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<svg width="12" height="12" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
+ <line stroke="black" stroke-width="3.6" stroke-opacity=".75" x1="0" y1="6" x2="12" y2="6"/>
+ <line stroke="white" stroke-width="1.9" x1="1" y1="6" x2="11" y2="6"/>
+</svg>
diff -up firefox-60.0/browser/themes/linux/window-controls/restore-themes.svg.1424422 firefox-60.0/browser/themes/linux/window-controls/restore-themes.svg
--- firefox-60.0/browser/themes/linux/window-controls/restore-themes.svg.1424422 2018-04-30 11:45:40.388172492 +0200
+++ firefox-60.0/browser/themes/linux/window-controls/restore-themes.svg 2018-04-30 11:45:40.388172492 +0200
@@ -0,0 +1,8 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<svg width="12" height="12" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges" fill="none" stroke="white">
+ <path stroke="black" stroke-width="3.6" stroke-opacity=".75" d="M2,4 l 6,0 l 0,6 l -6,0z M2.5,1.5 l 8,0 l 0,8"/>
+ <rect stroke-width="1.9" x="2" y="4" width="6" height="6"/>
+ <polyline stroke-width=".9" points="3.5,1.5 10.5,1.5 10.5,8.5"/>
+</svg>

56
mozilla-1436242.patch Normal file
View file

@ -0,0 +1,56 @@
# HG changeset patch
# User Jed Davis <jld@mozilla.com>
# Date 1526943705 21600
# Node ID 6bb3adfa15c6877f7874429462dad88f8c978c4f
# Parent 4c71c8454879c841871ecf3afb7dbdc96bad97fc
Bug 1436242 - Avoid undefined behavior in IPC fd-passing code. r=froydnj
MozReview-Commit-ID: 3szIPUssgF5
diff --git a/ipc/chromium/src/chrome/common/ipc_channel_posix.cc b/ipc/chromium/src/chrome/common/ipc_channel_posix.cc
--- a/ipc/chromium/src/chrome/common/ipc_channel_posix.cc
+++ b/ipc/chromium/src/chrome/common/ipc_channel_posix.cc
@@ -418,20 +418,37 @@ bool Channel::ChannelImpl::ProcessIncomi
const int* fds;
unsigned num_fds;
unsigned fds_i = 0; // the index of the first unused descriptor
if (input_overflow_fds_.empty()) {
fds = wire_fds;
num_fds = num_wire_fds;
} else {
- const size_t prev_size = input_overflow_fds_.size();
- input_overflow_fds_.resize(prev_size + num_wire_fds);
- memcpy(&input_overflow_fds_[prev_size], wire_fds,
- num_wire_fds * sizeof(int));
+ // This code may look like a no-op in the case where
+ // num_wire_fds == 0, but in fact:
+ //
+ // 1. wire_fds will be nullptr, so passing it to memcpy is
+ // undefined behavior according to the C standard, even though
+ // the memcpy length is 0.
+ //
+ // 2. prev_size will be an out-of-bounds index for
+ // input_overflow_fds_; this is undefined behavior according to
+ // the C++ standard, even though the element only has its
+ // pointer taken and isn't accessed (and the corresponding
+ // operation on a C array would be defined).
+ //
+ // UBSan makes #1 a fatal error, and assertions in libstdc++ do
+ // the same for #2 if enabled.
+ if (num_wire_fds > 0) {
+ const size_t prev_size = input_overflow_fds_.size();
+ input_overflow_fds_.resize(prev_size + num_wire_fds);
+ memcpy(&input_overflow_fds_[prev_size], wire_fds,
+ num_wire_fds * sizeof(int));
+ }
fds = &input_overflow_fds_[0];
num_fds = input_overflow_fds_.size();
}
// The data for the message we're currently reading consists of any data
// stored in incoming_message_ followed by data in input_buf_ (followed by
// other messages).

View file

@ -1,20 +0,0 @@
--- 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;
- MOZ_ALWAYS_INLINE bool GatherAndConvertResults();
+ bool GatherAndConvertResults();
MOZ_ALWAYS_INLINE bool QueryInterfaceFastPath();
@@ -1102,7 +1102,7 @@
~CallMethodHelper();
- MOZ_ALWAYS_INLINE bool Call();
+ bool Call();
// Trace implementation so we can put our CallMethodHelper in a Rooted<T>.
void trace(JSTracer* aTrc);

11
mozilla-256180.patch Normal file
View file

@ -0,0 +1,11 @@
--- layout/generic/nsIFrame.h.old 2016-07-11 13:41:39.688276559 +0200
+++ layout/generic/nsIFrame.h 2016-07-11 13:42:12.791406976 +0200
@@ -13,7 +13,7 @@
#error This header/class should only be used within GNU code. It should not be used by extensions.
#endif
-#define MAX_REFLOW_DEPTH 200
+#define MAX_REFLOW_DEPTH 1000
/* nsIFrame is in the process of being deCOMtaminated, i.e., this file is
eventually going to be eliminated, and all callers will use nsFrame instead.

14
mozilla-build-arm.patch Normal file
View file

@ -0,0 +1,14 @@
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,2 +0,0 @@
#!/bin/sh
exec /usr/bin/node "$@" 2>&1 | cat -

12
rhbz-1173156.patch Normal file
View file

@ -0,0 +1,12 @@
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,11 +1,12 @@
--- firefox-78.0/layout/base/PresShell.orig.h 2020-06-26 20:10:50.168878803 +0200
+++ firefox-78.0/layout/base/PresShell.h 2020-06-26 23:13:24.174571951 +0200
@@ -257,7 +257,7 @@
diff -up firefox-53.0/layout/base/nsIPresShell.h.1354671 firefox-53.0/layout/base/nsIPresShell.h
--- firefox-53.0/layout/base/nsIPresShell.h.1354671 2017-04-27 13:07:43.808653320 +0200
+++ firefox-53.0/layout/base/nsIPresShell.h 2017-04-27 13:09:40.404427641 +0200
@@ -204,7 +204,7 @@
* to the same aSize value. AllocateFrame is infallible and will abort
* on out-of-memory.
*/
- void* AllocateFrame(nsQueryFrame::FrameIID aID, size_t aSize) {
+ void* __attribute__((optimize("no-lifetime-dse"))) AllocateFrame(nsQueryFrame::FrameIID aID, size_t aSize) {
#define FRAME_ID(classname, ...) \
static_assert(size_t(nsQueryFrame::FrameIID::classname##_id) == \
size_t(eArenaObjectID_##classname), \
void* result = mFrameArena.AllocateByFrameID(aID, aSize);
RecordAlloc(result);
return result;

View file

@ -1,60 +0,0 @@
#!/usr/bin/bash
# Run wayland compositor and set WAYLAND_DISPLAY env variable
set -x
echo export DESKTOP_SESSION=gnome > $HOME/.xsessionrc
echo export XDG_CURRENT_DESKTOP=GNOME > $HOME/.xsessionrc
echo export XDG_SESSION_TYPE=wayland >> $HOME/.xsessionrc
# Turn off the screen saver and screen locking
gsettings set org.gnome.desktop.screensaver idle-activation-enabled false
gsettings set org.gnome.desktop.screensaver lock-enabled false
gsettings set org.gnome.desktop.screensaver lock-delay 3600
# Disable the screen saver
# This starts the gnome-keyring-daemon with an unlocked login keyring. libsecret uses this to
# store secrets. Firefox uses libsecret to store a key that protects sensitive information like
# credit card numbers.
if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
# if not found, launch a new one
eval `dbus-launch --sh-syntax`
fi
if [ -z "$XDG_RUNTIME_DIR" ]; then
export XDG_RUNTIME_DIR=$HOME
fi
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
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
if [ -S "$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY" ]; then
retry_count=$(($max_retries + 1))
else
retry_count=$(($retry_count + 1))
echo "Waiting for Mutter, retry: $retry_count"
sleep 2
fi
done
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,2 @@
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-60.5.1-gnu1.tar.bz2) = 6867681f5b4d65f78160a7686530975861d08c99a1f5e8d79448c2add3d9886144d3daefdb4d732dbda8ea14870086a41749a4de5e991b06199b66b3a0e6b677
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
SHA512 (icecat.png) = a3cec16cb15a27c3c91b53e2c534e78b07911011ff1331e450c0baf8e13b76da7cea2a90e5d75191fa88cfbfd40a0a7f3e553e92b64d0043dadd5ad5edfdf81c