extra/thunderbird to 52.4.0-1

This commit is contained in:
Kevin Mihelich 2017-10-13 01:04:57 +00:00
parent c427c973b6
commit 24a9da39ac
4 changed files with 69 additions and 189 deletions

View file

@ -0,0 +1,48 @@
From bbd48a5613c872883616884cfaf41665b0e4ec9b Mon Sep 17 00:00:00 2001
From: Ralph Giles <giles@mozilla.com>
Date: Fri, 10 Feb 2017 12:58:18 -0800
Subject: [PATCH] Bug 1338655 - Don't try to build mp4parse bindings. r=froydnj
We use the cheddar crate to generate a C header file
for our mp4parse_capi wrapper crate. Currently we
do this at code check-in time via update-rust.sh.
Cargo 0.18 and later will try to execute a build.rs
file in the crate source tree regardless of whether
it's specified in Cargo.toml so patching out that
line just results in 'crate cheddar not found'.
This change restores the old behaviour by substituting
a 'build = false' line instead.
We do have syntex vendored, but we don't currently build
it by default, so I prefer this solution to just vendoring
cheddar and generating the header at build time. The syntex
crate is quite large and adds significantly to our compile
time.
MozReview-Commit-ID: InJRRODWAdP
--HG--
extra : rebase_source : 29378fcbc86015ce6cc22dc66d38a43ddbac204e
---
media/libstagefright/binding/mp4parse-cargo.patch | 5 +++--
media/libstagefright/binding/mp4parse_capi/Cargo.toml | 2 ++
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/media/libstagefright/binding/mp4parse_capi/Cargo.toml b/media/libstagefright/binding/mp4parse_capi/Cargo.toml
index aee7ee947151a27c..d7e3f55119d3f4b6 100644
--- a/media/libstagefright/binding/mp4parse_capi/Cargo.toml
+++ b/media/libstagefright/binding/mp4parse_capi/Cargo.toml
@@ -18,6 +18,8 @@ exclude = [
"*.mp4",
]
+build = false
+
[dependencies]
byteorder = "1.0.0"
"mp4parse" = {version = "0.6.0", path = "../mp4parse"}
--
2.12.2

View file

@ -1,5 +1,5 @@
# $Id$ # $Id$
# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> # Contributor: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Contributor: Ionut Biru <ibiru@archlinux.org> # Contributor: Ionut Biru <ibiru@archlinux.org>
# Contributor: Alexander Baldeck <alexander@archlinux.org> # Contributor: Alexander Baldeck <alexander@archlinux.org>
# Contributor: Dale Blount <dale@archlinux.org> # Contributor: Dale Blount <dale@archlinux.org>
@ -7,14 +7,14 @@
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org> # ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - mozconfig changes for ARM # - mozconfig changes for ARM
# - remove cargo makedepend # - remove rust makedepend
buildarch=12 buildarch=12
highmem=1 highmem=1
pkgname=thunderbird pkgname=thunderbird
pkgver=52.3.0 pkgver=52.4.0
pkgrel=2 pkgrel=1
pkgdesc="Standalone mail and news reader from mozilla.org" pkgdesc="Standalone mail and news reader from mozilla.org"
arch=(i686 x86_64) arch=(i686 x86_64)
license=(MPL GPL LGPL) license=(MPL GPL LGPL)
@ -26,18 +26,17 @@ makedepends=(unzip zip diffutils python2 yasm mesa imake gconf libpulse inetutil
optdepends=('libcanberra: sound support') optdepends=('libcanberra: sound support')
options=(!emptydirs !makeflags) options=(!emptydirs !makeflags)
source=(https://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/$pkgver/source/thunderbird-$pkgver.source.tar.xz source=(https://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/$pkgver/source/thunderbird-$pkgver.source.tar.xz
thunderbird.desktop 0001-Bug-1338655-Don-t-try-to-build-mp4parse-bindings.-r-.patch
clip-ft-glyph-52esr.diff harmony-fix.diff glibc-2.26-fix.diff no-crmf.diff rust-i686.patch glibc-2.26-fix.diff fix-wifi-scanner.diff
thunderbird-install-dir.patch no-crmf.diff rust-i686.patch fix-wifi-scanner.diff) $pkgname.desktop thunderbird-install-dir.patch)
sha256sums=('050acc320a9c50365a53e4faa6538a0ad7f9a302d5f2cfb6edf0c6fe1b573b18' sha256sums=('7f57b5b4d4ec42b04afcff8327abc2d3c6185c0bcc1ad138825d021a2d3f578c'
'e44c55501f650a4e80b9c353b81f33e07ca65808db831eff6ca616aded233827' '413cd6d366d78f325d80ebebccfd0afa0d266b40b2e54b66ba2fa03c15f3ea67'
'dc4feddbf22ea11ae2513c68b7f3fc9047850d055a7f30d31a7ee94d7d5de12a'
'16bb776e9f3039321db747b2eaece0cda1320f3711fb853a68d67247b0aa065d'
'cd7ff441da66a287f8712e60cdc9e216c30355d521051e2eaae28a66d81915e8'
'24599eab8862476744fe1619a9a53a5b8cdcab30b3fc5767512f31d3529bd05d'
'a7317caba56e89932bd9e3b9352d94701dd9a419685057f238b1ded8dc0adcd7' 'a7317caba56e89932bd9e3b9352d94701dd9a419685057f238b1ded8dc0adcd7'
'f61ea706ce6905f568b9bdafd1b044b58f20737426f0aa5019ddb9b64031a269' 'f61ea706ce6905f568b9bdafd1b044b58f20737426f0aa5019ddb9b64031a269'
'9765bca5d63fb5525bbd0520b7ab1d27cabaed697e2fc7791400abc3fa4f13b8') 'cd7ff441da66a287f8712e60cdc9e216c30355d521051e2eaae28a66d81915e8'
'9765bca5d63fb5525bbd0520b7ab1d27cabaed697e2fc7791400abc3fa4f13b8'
'e44c55501f650a4e80b9c353b81f33e07ca65808db831eff6ca616aded233827'
'24599eab8862476744fe1619a9a53a5b8cdcab30b3fc5767512f31d3529bd05d')
# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
# Note: These are for Arch Linux use ONLY. For your own distribution, please # Note: These are for Arch Linux use ONLY. For your own distribution, please
@ -58,6 +57,9 @@ prepare() {
cd $pkgname-$pkgver cd $pkgname-$pkgver
patch -Np1 -i ../thunderbird-install-dir.patch patch -Np1 -i ../thunderbird-install-dir.patch
# https://bugzilla.mozilla.org/show_bug.cgi?id=1314968
patch -d mozilla -Np1 < ../fix-wifi-scanner.diff
# https://bugzilla.mozilla.org/show_bug.cgi?id=1371991 # https://bugzilla.mozilla.org/show_bug.cgi?id=1371991
patch -Np1 -i ../no-crmf.diff patch -Np1 -i ../no-crmf.diff
@ -65,18 +67,12 @@ prepare() {
# https://bugzilla.mozilla.org/show_bug.cgi?id=1394149 # https://bugzilla.mozilla.org/show_bug.cgi?id=1394149
patch -d mozilla/toolkit/crashreporter/google-breakpad/src/client -Np4 < ../glibc-2.26-fix.diff patch -d mozilla/toolkit/crashreporter/google-breakpad/src/client -Np4 < ../glibc-2.26-fix.diff
# https://bugzilla.mozilla.org/show_bug.cgi?id=1314968
patch -d mozilla -Np1 < ../fix-wifi-scanner.diff
# https://bugzilla.mozilla.org/show_bug.cgi?id=1393467
patch -d mozilla -Np1 < ../clip-ft-glyph-52esr.diff
# https://bugzilla.mozilla.org/show_bug.cgi?id=1400721
patch -d mozilla -Np1 < ../harmony-fix.diff
# Build with the rust targets we actually ship # Build with the rust targets we actually ship
patch -d mozilla -Np1 < ../rust-i686.patch patch -d mozilla -Np1 < ../rust-i686.patch
# https://bugs.archlinux.org/task/53890
patch -d mozilla -Np1 < ../0001-Bug-1338655-Don-t-try-to-build-mp4parse-bindings.-r-.patch
echo -n "$_google_api_key" >google-api-key echo -n "$_google_api_key" >google-api-key
echo -n "$_mozilla_api_key" >mozilla-api-key echo -n "$_mozilla_api_key" >mozilla-api-key
@ -113,13 +109,12 @@ ac_add_options --enable-system-ffi
ac_add_options --enable-system-pixman ac_add_options --enable-system-pixman
# Features # Features
ac_add_options --enable-alsa
ac_add_options --disable-jack
ac_add_options --enable-startup-notification ac_add_options --enable-startup-notification
ac_add_options --disable-crashreporter ac_add_options --disable-crashreporter
ac_add_options --enable-alsa
ac_add_options --disable-updater ac_add_options --disable-updater
STRIP_FLAGS="--strip-debug"
ac_add_options --disable-elf-hack ac_add_options --disable-elf-hack
ac_add_options --disable-webrtc ac_add_options --disable-webrtc
END END

View file

@ -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);

View file

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