summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO18
-rw-r--r--PKGBUILD29
-rw-r--r--clip-ft-glyph-52esr.diff147
-rw-r--r--glibc-2.26-fix.diff258
-rw-r--r--harmony-fix.diff16
-rw-r--r--icecat-bug-1427870-spectre-mitigation.patch49
6 files changed, 10 insertions, 507 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 7fb95b49ad92..392c01ea672b 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = icecat
pkgdesc = GNU version of the Firefox browser.
- pkgver = 52.3.0
- pkgrel = 3
+ pkgver = 52.6.0
+ pkgrel = 1
url = http://www.gnu.org/software/gnuzilla/
arch = i686
arch = x86_64
@@ -40,20 +40,16 @@ pkgbase = icecat
optdepends = networkmanager: Location detection via available WiFi networks
optdepends = libnotify: Notification integration
optdepends = speech-dispatcher: Text-to-Speech
- source = http://ftpmirror.gnu.org/gnuzilla/52.3.0/icecat-52.3.0-gnu1.tar.bz2
- source = http://ftpmirror.gnu.org/gnuzilla/52.3.0/icecat-52.3.0-gnu1.tar.bz2.sig
+ source = http://ftpmirror.gnu.org/gnuzilla/52.6.0/icecat-52.6.0-gnu1.tar.bz2
+ source = http://ftpmirror.gnu.org/gnuzilla/52.6.0/icecat-52.6.0-gnu1.tar.bz2.sig
source = mozconfig
source = icecat.desktop
source = icecat-safe.desktop
source = vendor.js
source = fix-wifi-scanner.diff
source = no-crmf.diff
- source = clip-ft-glyph-52esr.diff
- source = harmony-fix.diff
- source = glibc-2.26-fix.diff
- source = icecat-bug-1427870-spectre-mitigation.patch
validpgpkeys = A57369A8BABC2542B5A0368C3C76EED7D7E04784
- sha256sums = 699ab2b41d4428ef5e360f3f33d98bc52723315cedac20bb03619846ca895302
+ sha256sums = 0a0cf3acb2067e0580204b44bb5a02fab2033c6bbf7c0b47522a3c4c1f29d625
sha256sums = SKIP
sha256sums = 558575fd72237d5953f386170eb9ef848beae6ac08d2b53518ae6365e4cc274b
sha256sums = c44eab35f71dd3028a74632463710d674b2e8a0682e5e887535e3233a3b7bbb3
@@ -61,10 +57,6 @@ pkgbase = icecat
sha256sums = 4b50e9aec03432e21b44d18c4c97b2630bace606b033f7d556c9d3e3eb0f4fa4
sha256sums = 9765bca5d63fb5525bbd0520b7ab1d27cabaed697e2fc7791400abc3fa4f13b8
sha256sums = ada119174a2a1779c4195a1b4506e8ae67c49c5306103158805a390237acc1c6
- sha256sums = dc4feddbf22ea11ae2513c68b7f3fc9047850d055a7f30d31a7ee94d7d5de12a
- sha256sums = 16bb776e9f3039321db747b2eaece0cda1320f3711fb853a68d67247b0aa065d
- sha256sums = cd7ff441da66a287f8712e60cdc9e216c30355d521051e2eaae28a66d81915e8
- sha256sums = 8088e9d3116f12e32e17a019918ab45f93e2a2f819ff9372949e33ca428d3129
pkgname = icecat
diff --git a/PKGBUILD b/PKGBUILD
index db2056bea5db..99cb434d3ba1 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,10 +6,10 @@
# Contributor: Muhammad 'MJ' Jassim <UnbreakableMJ@gmail.com>
pkgname=icecat
-pkgver=52.3.0
+pkgver=52.6.0
_pkgver=${pkgver}-gnu1
_pkgverbase=${pkgver%%.*}
-pkgrel=3
+pkgrel=1
pkgdesc="GNU version of the Firefox browser."
arch=(i686 x86_64)
url="http://www.gnu.org/software/gnuzilla/"
@@ -26,22 +26,16 @@ source=(http://ftpmirror.gnu.org/gnuzilla/${pkgver}/${pkgname}-${_pkgver}.tar.bz
#source=(https://mirrors.kernel.org/gnu/gnuzilla/${pkgver}/${pkgname}-${_pkgver}.tar.bz2 ## Good mirror
#source=(http://jenkins.trisquel.info/icecat/${pkgname}-${_pkgver}.tar.bz2 ## Official developer (Ruben Rodriguez) site. Probably only has developer releases.
mozconfig icecat.desktop icecat-safe.desktop vendor.js
- fix-wifi-scanner.diff no-crmf.diff
- clip-ft-glyph-52esr.diff harmony-fix.diff glibc-2.26-fix.diff
- icecat-bug-1427870-spectre-mitigation.patch)
+ fix-wifi-scanner.diff no-crmf.diff)
-sha256sums=('699ab2b41d4428ef5e360f3f33d98bc52723315cedac20bb03619846ca895302'
+sha256sums=('0a0cf3acb2067e0580204b44bb5a02fab2033c6bbf7c0b47522a3c4c1f29d625'
'SKIP'
'558575fd72237d5953f386170eb9ef848beae6ac08d2b53518ae6365e4cc274b'
'c44eab35f71dd3028a74632463710d674b2e8a0682e5e887535e3233a3b7bbb3'
'190577ad917bccfc89a9bcafbc331521f551b6f54e190bb6216eada48dcb1303'
'4b50e9aec03432e21b44d18c4c97b2630bace606b033f7d556c9d3e3eb0f4fa4'
'9765bca5d63fb5525bbd0520b7ab1d27cabaed697e2fc7791400abc3fa4f13b8'
- 'ada119174a2a1779c4195a1b4506e8ae67c49c5306103158805a390237acc1c6'
- 'dc4feddbf22ea11ae2513c68b7f3fc9047850d055a7f30d31a7ee94d7d5de12a'
- '16bb776e9f3039321db747b2eaece0cda1320f3711fb853a68d67247b0aa065d'
- 'cd7ff441da66a287f8712e60cdc9e216c30355d521051e2eaae28a66d81915e8'
- '8088e9d3116f12e32e17a019918ab45f93e2a2f819ff9372949e33ca428d3129')
+ 'ada119174a2a1779c4195a1b4506e8ae67c49c5306103158805a390237acc1c6')
validpgpkeys=(A57369A8BABC2542B5A0368C3C76EED7D7E04784) # Ruben Rodriguez (GNU IceCat releases key) <ruben@gnu.org>
@@ -53,25 +47,12 @@ prepare() {
sed -e 's;$(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION);$(libdir)/$(MOZ_APP_NAME);g' -i config/baseconfig.mk
sed -e 's;$(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION);$(libdir)/$(MOZ_APP_NAME)-devel;g' -i config/baseconfig.mk
- # https://bugzilla.mozilla.org/show_bug.cgi?id=1385667
- # https://bugzilla.mozilla.org/show_bug.cgi?id=1394149
- patch -d toolkit/crashreporter/google-breakpad/src/client -Np4 < ../glibc-2.26-fix.diff
-
# https://bugzilla.mozilla.org/show_bug.cgi?id=1314968
patch -Np1 -i ../fix-wifi-scanner.diff
# https://bugs.archlinux.org/task/54395
patch -Np1 -i ../no-crmf.diff
- # https://bugzilla.mozilla.org/show_bug.cgi?id=1393467
- patch -Np1 -i ../clip-ft-glyph-52esr.diff
-
- # https://bugzilla.mozilla.org/show_bug.cgi?id=1400721
- patch -Np1 -i ../harmony-fix.diff
-
- # mitigation to Spectre for GNU IceCat. It's best this than nothing until official patches will be posted
- patch -Np1 -i ../icecat-bug-1427870-spectre-mitigation.patch
-
msg2 "Starting build..."
cp -v ${srcdir}/mozconfig .mozconfig
diff --git a/clip-ft-glyph-52esr.diff b/clip-ft-glyph-52esr.diff
deleted file mode 100644
index deecd1251cc4..000000000000
--- a/clip-ft-glyph-52esr.diff
+++ /dev/null
@@ -1,147 +0,0 @@
-# HG changeset patch
-# User Lee Salzman <lsalzman@mozilla.com>
-# Date 1504640559 14400
-# Tue Sep 05 15:42:39 2017 -0400
-# Node ID 923246286b9858fb103e100f886c03714b97b5ec
-# Parent 3fff2b174212af40a7b7ba75a047db431f81c780
-clip FreeType glyph bitmap to mask in Skia (52 ESR)
-
-diff --git a/gfx/skia/skia/src/ports/SkFontHost_FreeType_common.cpp b/gfx/skia/skia/src/ports/SkFontHost_FreeType_common.cpp
---- a/gfx/skia/skia/src/ports/SkFontHost_FreeType_common.cpp
-+++ b/gfx/skia/skia/src/ports/SkFontHost_FreeType_common.cpp
-@@ -350,58 +350,118 @@ void SkScalerContext_FreeType_Base::gene
- const SkMatrix& bitmapTransform)
- {
- const bool doBGR = SkToBool(fRec.fFlags & SkScalerContext::kLCD_BGROrder_Flag);
- const bool doVert = SkToBool(fRec.fFlags & SkScalerContext::kLCD_Vertical_Flag);
-
- switch ( face->glyph->format ) {
- case FT_GLYPH_FORMAT_OUTLINE: {
- FT_Outline* outline = &face->glyph->outline;
-- FT_BBox bbox;
-- FT_Bitmap target;
-
- int dx = 0, dy = 0;
- if (fRec.fFlags & SkScalerContext::kSubpixelPositioning_Flag) {
- dx = SkFixedToFDot6(glyph.getSubXFixed());
- dy = SkFixedToFDot6(glyph.getSubYFixed());
- // negate dy since freetype-y-goes-up and skia-y-goes-down
- dy = -dy;
- }
-- FT_Outline_Get_CBox(outline, &bbox);
-- /*
-- what we really want to do for subpixel is
-- offset(dx, dy)
-- compute_bounds
-- offset(bbox & !63)
-- but that is two calls to offset, so we do the following, which
-- achieves the same thing with only one offset call.
-- */
-- FT_Outline_Translate(outline, dx - ((bbox.xMin + dx) & ~63),
-- dy - ((bbox.yMin + dy) & ~63));
-+ memset(glyph.fImage, 0, glyph.rowBytes() * glyph.fHeight);
-
- if (SkMask::kLCD16_Format == glyph.fMaskFormat) {
-- FT_Render_Glyph(face->glyph, doVert ? FT_RENDER_MODE_LCD_V : FT_RENDER_MODE_LCD);
-+ FT_Outline_Translate(outline, dx, dy);
-+ FT_Error err = FT_Render_Glyph(face->glyph, doVert ? FT_RENDER_MODE_LCD_V : FT_RENDER_MODE_LCD);
-+ if (err) {
-+ return;
-+ }
-+
- SkMask mask;
- glyph.toMask(&mask);
-+
-+ FT_GlyphSlotRec& ftGlyph = *face->glyph;
-+
-+ if (!SkIRect::Intersects(mask.fBounds,
-+ SkIRect::MakeXYWH( ftGlyph.bitmap_left,
-+ -ftGlyph.bitmap_top,
-+ ftGlyph.bitmap.width,
-+ ftGlyph.bitmap.rows)))
-+ {
-+ return;
-+ }
-+
-+ // If the FT_Bitmap extent is larger, discard bits of the bitmap outside the mask.
-+ // If the SkMask extent is larger, shrink mask to fit bitmap (clearing discarded).
-+ unsigned char* origBuffer = ftGlyph.bitmap.buffer;
-+ // First align the top left (origin).
-+ if (-ftGlyph.bitmap_top < mask.fBounds.fTop) {
-+ int32_t topDiff = mask.fBounds.fTop - (-ftGlyph.bitmap_top);
-+ ftGlyph.bitmap.buffer += ftGlyph.bitmap.pitch * topDiff;
-+ ftGlyph.bitmap.rows -= topDiff;
-+ ftGlyph.bitmap_top = -mask.fBounds.fTop;
-+ }
-+ if (ftGlyph.bitmap_left < mask.fBounds.fLeft) {
-+ int32_t leftDiff = mask.fBounds.fLeft - ftGlyph.bitmap_left;
-+ ftGlyph.bitmap.buffer += leftDiff;
-+ ftGlyph.bitmap.width -= leftDiff;
-+ ftGlyph.bitmap_left = mask.fBounds.fLeft;
-+ }
-+ if (mask.fBounds.fTop < -ftGlyph.bitmap_top) {
-+ mask.fImage += mask.fRowBytes * (-ftGlyph.bitmap_top - mask.fBounds.fTop);
-+ mask.fBounds.fTop = -ftGlyph.bitmap_top;
-+ }
-+ if (mask.fBounds.fLeft < ftGlyph.bitmap_left) {
-+ mask.fImage += sizeof(uint16_t) * (ftGlyph.bitmap_left - mask.fBounds.fLeft);
-+ mask.fBounds.fLeft = ftGlyph.bitmap_left;
-+ }
-+ // Origins aligned, clean up the width and height.
-+ int ftVertScale = (doVert ? 3 : 1);
-+ int ftHoriScale = (doVert ? 1 : 3);
-+ if (mask.fBounds.height() * ftVertScale < SkToInt(ftGlyph.bitmap.rows)) {
-+ ftGlyph.bitmap.rows = mask.fBounds.height() * ftVertScale;
-+ }
-+ if (mask.fBounds.width() * ftHoriScale < SkToInt(ftGlyph.bitmap.width)) {
-+ ftGlyph.bitmap.width = mask.fBounds.width() * ftHoriScale;
-+ }
-+ if (SkToInt(ftGlyph.bitmap.rows) < mask.fBounds.height() * ftVertScale) {
-+ mask.fBounds.fBottom = mask.fBounds.fTop + ftGlyph.bitmap.rows / ftVertScale;
-+ }
-+ if (SkToInt(ftGlyph.bitmap.width) < mask.fBounds.width() * ftHoriScale) {
-+ mask.fBounds.fRight = mask.fBounds.fLeft + ftGlyph.bitmap.width / ftHoriScale;
-+ }
-+
- if (fPreBlend.isApplicable()) {
-- copyFT2LCD16<true>(face->glyph->bitmap, mask, doBGR,
-+ copyFT2LCD16<true>(ftGlyph.bitmap, mask, doBGR,
- fPreBlend.fR, fPreBlend.fG, fPreBlend.fB);
- } else {
-- copyFT2LCD16<false>(face->glyph->bitmap, mask, doBGR,
-+ copyFT2LCD16<false>(ftGlyph.bitmap, mask, doBGR,
- fPreBlend.fR, fPreBlend.fG, fPreBlend.fB);
- }
-+ // Restore the buffer pointer so FreeType can properly free it.
-+ ftGlyph.bitmap.buffer = origBuffer;
- } else {
-+ FT_BBox bbox;
-+ FT_Bitmap target;
-+ FT_Outline_Get_CBox(outline, &bbox);
-+ /*
-+ what we really want to do for subpixel is
-+ offset(dx, dy)
-+ compute_bounds
-+ offset(bbox & !63)
-+ but that is two calls to offset, so we do the following, which
-+ achieves the same thing with only one offset call.
-+ */
-+ FT_Outline_Translate(outline, dx - ((bbox.xMin + dx) & ~63),
-+ dy - ((bbox.yMin + dy) & ~63));
-+
- target.width = glyph.fWidth;
- target.rows = glyph.fHeight;
- target.pitch = glyph.rowBytes();
- target.buffer = reinterpret_cast<uint8_t*>(glyph.fImage);
- target.pixel_mode = compute_pixel_mode( (SkMask::Format)fRec.fMaskFormat);
- target.num_grays = 256;
-
-- memset(glyph.fImage, 0, glyph.rowBytes() * glyph.fHeight);
- FT_Outline_Get_Bitmap(face->glyph->library, outline, &target);
- }
- } break;
-
- case FT_GLYPH_FORMAT_BITMAP: {
- FT_Pixel_Mode pixel_mode = static_cast<FT_Pixel_Mode>(face->glyph->bitmap.pixel_mode);
- SkMask::Format maskFormat = static_cast<SkMask::Format>(glyph.fMaskFormat);
-
diff --git a/glibc-2.26-fix.diff b/glibc-2.26-fix.diff
deleted file mode 100644
index 48733ab899bb..000000000000
--- a/glibc-2.26-fix.diff
+++ /dev/null
@@ -1,258 +0,0 @@
-From 6a0b7c8ecf0734ba1bcdccf8e0ee97e721fd5420 Mon Sep 17 00:00:00 2001
-Message-Id: <6a0b7c8ecf0734ba1bcdccf8e0ee97e721fd5420.1505113337.git.jan.steffens@gmail.com>
-From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= <emilio@crisal.io>
-Date: Sat, 19 Aug 2017 20:14:25 +0200
-Subject: [PATCH] Fix use of struct ucontext (squash 2 commits)
-
-Needed for building with glibc 2.26.
-
-Bug 1385667: Use ucontext_t consistently in breakpad-client. r=ted
-MozReview-Commit-ID: AJhzJdNXP0f
-
-Bug 1394149: Fix remaining uses of ucontext in breakpad-client. r=ted
-MozReview-Commit-ID: 5tP7fXsI7dQ
----
- .../linux/dump_writer_common/ucontext_reader.cc | 30 +++++++++++-----------
- .../linux/dump_writer_common/ucontext_reader.h | 10 ++++----
- .../linux/handler/exception_handler.cc | 10 ++++----
- .../linux/handler/exception_handler.h | 2 +-
- .../linux/microdump_writer/microdump_writer.cc | 2 +-
- .../linux/minidump_writer/minidump_writer.cc | 2 +-
- 6 files changed, 28 insertions(+), 28 deletions(-)
-
-diff --git a/toolkit/crashreporter/breakpad-client/linux/dump_writer_common/ucontext_reader.cc b/toolkit/crashreporter/breakpad-client/linux/dump_writer_common/ucontext_reader.cc
-index 999960912e459e1b..303c0ebd32b663c4 100644
---- a/toolkit/crashreporter/breakpad-client/linux/dump_writer_common/ucontext_reader.cc
-+++ b/toolkit/crashreporter/breakpad-client/linux/dump_writer_common/ucontext_reader.cc
-@@ -40,15 +40,15 @@ namespace google_breakpad {
-
- #if defined(__i386__)
-
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.gregs[REG_ESP];
- }
-
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.gregs[REG_EIP];
- }
-
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fp) {
- const greg_t* regs = uc->uc_mcontext.gregs;
-
-@@ -88,15 +88,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
-
- #elif defined(__x86_64)
-
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.gregs[REG_RSP];
- }
-
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.gregs[REG_RIP];
- }
-
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fpregs) {
- const greg_t* regs = uc->uc_mcontext.gregs;
-
-@@ -145,15 +145,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
-
- #elif defined(__ARM_EABI__)
-
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.arm_sp;
- }
-
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.arm_pc;
- }
-
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) {
- out->context_flags = MD_CONTEXT_ARM_FULL;
-
- out->iregs[0] = uc->uc_mcontext.arm_r0;
-@@ -184,41 +184,41 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
-
- #elif defined(__aarch64__)
-
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.sp;
- }
-
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.pc;
- }
-
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct fpsimd_context* fpregs) {
- out->context_flags = MD_CONTEXT_ARM64_FULL;
-
- out->cpsr = static_cast<uint32_t>(uc->uc_mcontext.pstate);
- for (int i = 0; i < MD_CONTEXT_ARM64_REG_SP; ++i)
- out->iregs[i] = uc->uc_mcontext.regs[i];
- out->iregs[MD_CONTEXT_ARM64_REG_SP] = uc->uc_mcontext.sp;
- out->iregs[MD_CONTEXT_ARM64_REG_PC] = uc->uc_mcontext.pc;
-
- out->float_save.fpsr = fpregs->fpsr;
- out->float_save.fpcr = fpregs->fpcr;
- my_memcpy(&out->float_save.regs, &fpregs->vregs,
- MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT * 16);
- }
-
- #elif defined(__mips__)
-
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.gregs[MD_CONTEXT_MIPS_REG_SP];
- }
-
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.pc;
- }
-
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) {
- #if _MIPS_SIM == _ABI64
- out->context_flags = MD_CONTEXT_MIPS64_FULL;
- #elif _MIPS_SIM == _ABIO32
-diff --git a/toolkit/crashreporter/breakpad-client/linux/dump_writer_common/ucontext_reader.h b/toolkit/crashreporter/breakpad-client/linux/dump_writer_common/ucontext_reader.h
-index c533e28ba7441e83..039752a2dfb6e589 100644
---- a/toolkit/crashreporter/breakpad-client/linux/dump_writer_common/ucontext_reader.h
-+++ b/toolkit/crashreporter/breakpad-client/linux/dump_writer_common/ucontext_reader.h
-@@ -41,21 +41,21 @@ namespace google_breakpad {
-
- // Wraps platform-dependent implementations of accessors to ucontext structs.
- struct UContextReader {
-- static uintptr_t GetStackPointer(const struct ucontext* uc);
-+ static uintptr_t GetStackPointer(const ucontext_t* uc);
-
-- static uintptr_t GetInstructionPointer(const struct ucontext* uc);
-+ static uintptr_t GetInstructionPointer(const ucontext_t* uc);
-
- // Juggle a arch-specific ucontext into a minidump format
- // out: the minidump structure
- // info: the collection of register structures.
- #if defined(__i386__) || defined(__x86_64)
-- static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fp);
- #elif defined(__aarch64__)
-- static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct fpsimd_context* fpregs);
- #else
-- static void FillCPUContext(RawContextCPU *out, const ucontext *uc);
-+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc);
- #endif
- };
-
-diff --git a/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.cc b/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.cc
-index 71a51a763938e39d..12df9bc96ec45fea 100644
---- a/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.cc
-+++ b/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.cc
-@@ -439,44 +439,44 @@ bool ExceptionHandler::HandleSignal(int sig, siginfo_t* info, void* uc) {
- // Fill in all the holes in the struct to make Valgrind happy.
- memset(&g_crash_context_, 0, sizeof(g_crash_context_));
- memcpy(&g_crash_context_.siginfo, info, sizeof(siginfo_t));
-- memcpy(&g_crash_context_.context, uc, sizeof(struct ucontext));
-+ memcpy(&g_crash_context_.context, uc, sizeof(ucontext_t));
- #if defined(__aarch64__)
-- struct ucontext* uc_ptr = (struct ucontext*)uc;
-+ ucontext_t* uc_ptr = (ucontext_t*)uc;
- struct fpsimd_context* fp_ptr =
- (struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved;
- if (fp_ptr->head.magic == FPSIMD_MAGIC) {
- memcpy(&g_crash_context_.float_state, fp_ptr,
- sizeof(g_crash_context_.float_state));
- }
- #elif !defined(__ARM_EABI__) && !defined(__mips__)
- // FP state is not part of user ABI on ARM Linux.
-- // In case of MIPS Linux FP state is already part of struct ucontext
-+ // In case of MIPS Linux FP state is already part of ucontext_t
- // and 'float_state' is not a member of CrashContext.
-- struct ucontext* uc_ptr = (struct ucontext*)uc;
-+ ucontext_t* uc_ptr = (ucontext_t*)uc;
- if (uc_ptr->uc_mcontext.fpregs) {
- memcpy(&g_crash_context_.float_state, uc_ptr->uc_mcontext.fpregs,
- sizeof(g_crash_context_.float_state));
- }
- #endif
- g_crash_context_.tid = syscall(__NR_gettid);
- if (crash_handler_ != NULL) {
- if (crash_handler_(&g_crash_context_, sizeof(g_crash_context_),
- callback_context_)) {
- return true;
- }
- }
- return GenerateDump(&g_crash_context_);
- }
-
- // This is a public interface to HandleSignal that allows the client to
- // generate a crash dump. This function may run in a compromised context.
- bool ExceptionHandler::SimulateSignalDelivery(int sig) {
- siginfo_t siginfo = {};
- // Mimic a trusted signal to allow tracing the process (see
- // ExceptionHandler::HandleSignal().
- siginfo.si_code = SI_USER;
- siginfo.si_pid = getpid();
-- struct ucontext context;
-+ ucontext_t context;
- getcontext(&context);
- return HandleSignal(sig, &siginfo, &context);
- }
-diff --git a/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.h b/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.h
-index 711586fec7ddae59..be1880170e2826b0 100644
---- a/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.h
-+++ b/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.h
-@@ -191,7 +191,7 @@ class ExceptionHandler {
- struct CrashContext {
- siginfo_t siginfo;
- pid_t tid; // the crashing thread.
-- struct ucontext context;
-+ ucontext_t context;
- #if !defined(__ARM_EABI__) && !defined(__mips__)
- // #ifdef this out because FP state is not part of user ABI for Linux ARM.
- // In case of MIPS Linux FP state is already part of struct
-diff --git a/toolkit/crashreporter/breakpad-client/linux/microdump_writer/microdump_writer.cc b/toolkit/crashreporter/breakpad-client/linux/microdump_writer/microdump_writer.cc
-index ff20bf36584c876b..a0b90e08fc5f0cff 100644
---- a/toolkit/crashreporter/breakpad-client/linux/microdump_writer/microdump_writer.cc
-+++ b/toolkit/crashreporter/breakpad-client/linux/microdump_writer/microdump_writer.cc
-@@ -571,7 +571,7 @@ class MicrodumpWriter {
-
- void* Alloc(unsigned bytes) { return dumper_->allocator()->Alloc(bytes); }
-
-- const struct ucontext* const ucontext_;
-+ const ucontext_t* const ucontext_;
- #if !defined(__ARM_EABI__) && !defined(__mips__)
- const google_breakpad::fpstate_t* const float_state_;
- #endif
-diff --git a/toolkit/crashreporter/breakpad-client/linux/minidump_writer/minidump_writer.cc b/toolkit/crashreporter/breakpad-client/linux/minidump_writer/minidump_writer.cc
-index 0650bb95c179464a..6b5304bcd605ca3a 100644
---- a/toolkit/crashreporter/breakpad-client/linux/minidump_writer/minidump_writer.cc
-+++ b/toolkit/crashreporter/breakpad-client/linux/minidump_writer/minidump_writer.cc
-@@ -1247,7 +1247,7 @@ class MinidumpWriter {
- const int fd_; // File descriptor where the minidum should be written.
- const char* path_; // Path to the file where the minidum should be written.
-
-- const struct ucontext* const ucontext_; // also from the signal handler
-+ const ucontext_t* const ucontext_; // also from the signal handler
- #if !defined(__ARM_EABI__) && !defined(__mips__)
- const google_breakpad::fpstate_t* const float_state_; // ditto
- #endif
---
-2.14.1
-
diff --git a/harmony-fix.diff b/harmony-fix.diff
deleted file mode 100644
index 7f62fd480f18..000000000000
--- a/harmony-fix.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git i/gfx/skia/skia/src/ports/SkFontHost_cairo.cpp w/gfx/skia/skia/src/ports/SkFontHost_cairo.cpp
-index 42da19280fce8235..2c221c32d097b462 100644
---- i/gfx/skia/skia/src/ports/SkFontHost_cairo.cpp
-+++ w/gfx/skia/skia/src/ports/SkFontHost_cairo.cpp
-@@ -666,10 +666,7 @@ void SkScalerContext_CairoFT::generateMetrics(SkGlyph* glyph)
- glyph->fTop = -SkToS16(SkFDot6Floor(bbox.yMax));
- glyph->fLeft = SkToS16(SkFDot6Floor(bbox.xMin));
-
-- if (isLCD(fRec) &&
-- gSetLcdFilter &&
-- (fLcdFilter == FT_LCD_FILTER_DEFAULT ||
-- fLcdFilter == FT_LCD_FILTER_LIGHT)) {
-+ if (isLCD(fRec)) {
- if (fRec.fFlags & kLCD_Vertical_Flag) {
- glyph->fTop -= 1;
- glyph->fHeight += 2;
diff --git a/icecat-bug-1427870-spectre-mitigation.patch b/icecat-bug-1427870-spectre-mitigation.patch
deleted file mode 100644
index 6b088286cb0c..000000000000
--- a/icecat-bug-1427870-spectre-mitigation.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-Mitigate Spectre by reducing the resolution of performance.now() to 20
-microseconds. Based on:
-
- https://hg.mozilla.org/releases/mozilla-release/rev/afa87f9be3a8
-
-For more details, see:
-
- https://blog.mozilla.org/security/2018/01/03/mitigations-landing-new-class-timing-attack/
-
-This patch was modified to apply cleanly to GNU IceCat.
-
-
-# HG changeset patch
-# User Tom Ritter <tom@mozilla.com>
-# Date 1514660820 21600
-# Node ID afa87f9be3a8852da3a30f286b15ae599c7874f6
-# Parent 6caa457ebedc915b43dc1d054b8fe22e82ca7447
-Bug 1427870 - Change resolution of .now() to 20us. r=bkelly, a=lizzard
-
-The comment about workers was introduced in Bug 1186489 but became obsolete some time after that
-(definitely by Bug 1278838)
-
-diff --git a/dom/performance/Performance.cpp b/dom/performance/Performance.cpp
---- a/dom/performance/Performance.cpp
-+++ b/dom/performance/Performance.cpp
-@@ -234,20 +234,19 @@ Performance::ClearResourceTimings()
- {
- MOZ_ASSERT(NS_IsMainThread());
- mResourceEntries.Clear();
- }
-
- DOMHighResTimeStamp
- Performance::RoundTime(double aTime) const
- {
-- // Round down to the nearest 5us, because if the timer is too accurate people
-- // can do nasty timing attacks with it. See similar code in the worker
-- // Performance implementation.
-- const double maxResolutionMs = 0.005;
-+ // Round down to the nearest 20us, because if the timer is too accurate people
-+ // can do nasty timing attacks with it.
-+ const double maxResolutionMs = 0.020;
- return floor(aTime / maxResolutionMs) * maxResolutionMs;
- }
-
-
- void
- Performance::Mark(const nsAString& aName, ErrorResult& aRv)
- {
- // Don't add the entry if the buffer is full. XXX should be removed by bug 1159003.