Date: Tuesday, June 27, 2017 @ 04:56:23 Author: foutrelis Revision: 299283
archrelease: copy trunk to extra-i686, extra-x86_64 Added: chromium/repos/extra-i686/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch (from rev 299282, chromium/trunk/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch) chromium/repos/extra-i686/0001-Clip-FreeType-glyph-bitmap-to-mask.patch (from rev 299282, chromium/trunk/0001-Clip-FreeType-glyph-bitmap-to-mask.patch) chromium/repos/extra-i686/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch (from rev 299282, chromium/trunk/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch) chromium/repos/extra-i686/PKGBUILD (from rev 299282, chromium/trunk/PKGBUILD) chromium/repos/extra-i686/chromium-blink-gcc7.patch (from rev 299282, chromium/trunk/chromium-blink-gcc7.patch) chromium/repos/extra-i686/chromium-system-ffmpeg-r6.patch (from rev 299282, chromium/trunk/chromium-system-ffmpeg-r6.patch) chromium/repos/extra-i686/chromium-v8-gcc7.patch (from rev 299282, chromium/trunk/chromium-v8-gcc7.patch) chromium/repos/extra-i686/chromium-widevine.patch (from rev 299282, chromium/trunk/chromium-widevine.patch) chromium/repos/extra-i686/chromium.desktop (from rev 299282, chromium/trunk/chromium.desktop) chromium/repos/extra-i686/chromium.install (from rev 299282, chromium/trunk/chromium.install) chromium/repos/extra-x86_64/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch (from rev 299282, chromium/trunk/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch) chromium/repos/extra-x86_64/0001-Clip-FreeType-glyph-bitmap-to-mask.patch (from rev 299282, chromium/trunk/0001-Clip-FreeType-glyph-bitmap-to-mask.patch) chromium/repos/extra-x86_64/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch (from rev 299282, chromium/trunk/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch) chromium/repos/extra-x86_64/PKGBUILD (from rev 299282, chromium/trunk/PKGBUILD) chromium/repos/extra-x86_64/chromium-blink-gcc7.patch (from rev 299282, chromium/trunk/chromium-blink-gcc7.patch) chromium/repos/extra-x86_64/chromium-system-ffmpeg-r6.patch (from rev 299282, chromium/trunk/chromium-system-ffmpeg-r6.patch) chromium/repos/extra-x86_64/chromium-v8-gcc7.patch (from rev 299282, chromium/trunk/chromium-v8-gcc7.patch) chromium/repos/extra-x86_64/chromium-widevine.patch (from rev 299282, chromium/trunk/chromium-widevine.patch) chromium/repos/extra-x86_64/chromium.desktop (from rev 299282, chromium/trunk/chromium.desktop) chromium/repos/extra-x86_64/chromium.install (from rev 299282, chromium/trunk/chromium.install) Deleted: chromium/repos/extra-i686/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch chromium/repos/extra-i686/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch chromium/repos/extra-i686/PKGBUILD chromium/repos/extra-i686/chromium-blink-gcc7.patch chromium/repos/extra-i686/chromium-system-ffmpeg-r6.patch chromium/repos/extra-i686/chromium-v8-gcc7.patch chromium/repos/extra-i686/chromium-widevine.patch chromium/repos/extra-i686/chromium.desktop chromium/repos/extra-i686/chromium.install chromium/repos/extra-x86_64/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch chromium/repos/extra-x86_64/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch chromium/repos/extra-x86_64/PKGBUILD chromium/repos/extra-x86_64/chromium-blink-gcc7.patch chromium/repos/extra-x86_64/chromium-system-ffmpeg-r6.patch chromium/repos/extra-x86_64/chromium-v8-gcc7.patch chromium/repos/extra-x86_64/chromium-widevine.patch chromium/repos/extra-x86_64/chromium.desktop chromium/repos/extra-x86_64/chromium.install ------------------------------------------------------------------------------+ /0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch | 236 +++++ /0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch | 70 + /PKGBUILD | 422 ++++++++++ /chromium-blink-gcc7.patch | 152 +++ /chromium-system-ffmpeg-r6.patch | 86 ++ /chromium-v8-gcc7.patch | 146 +++ /chromium-widevine.patch | 20 /chromium.desktop | 224 +++++ /chromium.install | 32 extra-i686/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch | 118 -- extra-i686/0001-Clip-FreeType-glyph-bitmap-to-mask.patch | 170 ++++ extra-i686/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch | 35 extra-i686/PKGBUILD | 200 ---- extra-i686/chromium-blink-gcc7.patch | 76 - extra-i686/chromium-system-ffmpeg-r6.patch | 43 - extra-i686/chromium-v8-gcc7.patch | 73 - extra-i686/chromium-widevine.patch | 10 extra-i686/chromium.desktop | 112 -- extra-i686/chromium.install | 16 extra-x86_64/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch | 118 -- extra-x86_64/0001-Clip-FreeType-glyph-bitmap-to-mask.patch | 170 ++++ extra-x86_64/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch | 35 extra-x86_64/PKGBUILD | 200 ---- extra-x86_64/chromium-blink-gcc7.patch | 76 - extra-x86_64/chromium-system-ffmpeg-r6.patch | 43 - extra-x86_64/chromium-v8-gcc7.patch | 73 - extra-x86_64/chromium-widevine.patch | 10 extra-x86_64/chromium.desktop | 112 -- extra-x86_64/chromium.install | 16 29 files changed, 1728 insertions(+), 1366 deletions(-) Deleted: extra-i686/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch =================================================================== --- extra-i686/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch 2017-06-27 04:55:18 UTC (rev 299282) +++ extra-i686/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch 2017-06-27 04:56:23 UTC (rev 299283) @@ -1,118 +0,0 @@ -From 27bab2297187099229a1e4304d8feb866c8da55a Mon Sep 17 00:00:00 2001 -From: "dongseong.hwang" <dongseong.hw...@intel.com> -Date: Tue, 18 Apr 2017 16:44:55 -0700 -Subject: [PATCH] ClientNativePixmapFactoryDmabuf uses ioctl, instead of - drmIoctl. - -DMA_BUF_SYNC ioctl is not drmIoctl, because it uses dma-buf fd, instead of drm -device fd. - -In addition, remove LOCAL_ prefix to fix build failure >= kernel 4.6 - -Actually, ChromeOS doesn't need this local DMA_BUF_SYNC definition as all -verion of kernel for cros has dma-buf.h header. -https://chromium-review.googlesource.com/c/459544/ -However, there is not any way to distinguish real ChromeOS build and -current_os="chromeos" build, so remain the local definition to ChromeOS as -well. - -BUG=584248 -R=reve...@chromium.org - -Review-Url: https://codereview.chromium.org/2805503003 -Cr-Commit-Position: refs/heads/master@{#465425} ---- - ui/gfx/linux/client_native_pixmap_dmabuf.cc | 49 +++++++++++++---------------- - 1 file changed, 21 insertions(+), 28 deletions(-) - -diff --git a/ui/gfx/linux/client_native_pixmap_dmabuf.cc b/ui/gfx/linux/client_native_pixmap_dmabuf.cc -index d656c338f0a6..1bb441dc25ce 100644 ---- a/ui/gfx/linux/client_native_pixmap_dmabuf.cc -+++ b/ui/gfx/linux/client_native_pixmap_dmabuf.cc -@@ -7,36 +7,35 @@ - #include <fcntl.h> - #include <linux/version.h> - #include <stddef.h> -+#include <sys/ioctl.h> - #include <sys/mman.h> - #include <xf86drm.h> - - #include "base/debug/crash_logging.h" - #include "base/memory/ptr_util.h" -+#include "base/posix/eintr_wrapper.h" - #include "base/process/memory.h" - #include "base/process/process_metrics.h" - #include "base/strings/stringprintf.h" - #include "base/trace_event/trace_event.h" - --#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0) -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0) -+#include <linux/dma-buf.h> -+#else - #include <linux/types.h> - --struct local_dma_buf_sync { -+struct dma_buf_sync { - __u64 flags; - }; - --#define LOCAL_DMA_BUF_SYNC_READ (1 << 0) --#define LOCAL_DMA_BUF_SYNC_WRITE (2 << 0) --#define LOCAL_DMA_BUF_SYNC_RW \ -- (LOCAL_DMA_BUF_SYNC_READ | LOCAL_DMA_BUF_SYNC_WRITE) --#define LOCAL_DMA_BUF_SYNC_START (0 << 2) --#define LOCAL_DMA_BUF_SYNC_END (1 << 2) -+#define DMA_BUF_SYNC_READ (1 << 0) -+#define DMA_BUF_SYNC_WRITE (2 << 0) -+#define DMA_BUF_SYNC_RW (DMA_BUF_SYNC_READ | DMA_BUF_SYNC_WRITE) -+#define DMA_BUF_SYNC_START (0 << 2) -+#define DMA_BUF_SYNC_END (1 << 2) - --#define LOCAL_DMA_BUF_BASE 'b' --#define LOCAL_DMA_BUF_IOCTL_SYNC \ -- _IOW(LOCAL_DMA_BUF_BASE, 0, struct local_dma_buf_sync) -- --#else --#include <linux/dma-buf.h> -+#define DMA_BUF_BASE 'b' -+#define DMA_BUF_IOCTL_SYNC _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync) - #endif - - namespace gfx { -@@ -44,25 +43,19 @@ namespace gfx { - namespace { - - void PrimeSyncStart(int dmabuf_fd) { -- struct local_dma_buf_sync sync_start = {0}; -+ struct dma_buf_sync sync_start = {0}; - -- sync_start.flags = LOCAL_DMA_BUF_SYNC_START | LOCAL_DMA_BUF_SYNC_RW; --#if DCHECK_IS_ON() -- int rv = --#endif -- drmIoctl(dmabuf_fd, LOCAL_DMA_BUF_IOCTL_SYNC, &sync_start); -- DPLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_START"; -+ sync_start.flags = DMA_BUF_SYNC_START | DMA_BUF_SYNC_RW; -+ int rv = HANDLE_EINTR(ioctl(dmabuf_fd, DMA_BUF_IOCTL_SYNC, &sync_start)); -+ PLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_START"; - } - - void PrimeSyncEnd(int dmabuf_fd) { -- struct local_dma_buf_sync sync_end = {0}; -+ struct dma_buf_sync sync_end = {0}; - -- sync_end.flags = LOCAL_DMA_BUF_SYNC_END | LOCAL_DMA_BUF_SYNC_RW; --#if DCHECK_IS_ON() -- int rv = --#endif -- drmIoctl(dmabuf_fd, LOCAL_DMA_BUF_IOCTL_SYNC, &sync_end); -- DPLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_END"; -+ sync_end.flags = DMA_BUF_SYNC_END | DMA_BUF_SYNC_RW; -+ int rv = HANDLE_EINTR(ioctl(dmabuf_fd, DMA_BUF_IOCTL_SYNC, &sync_end)); -+ PLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_END"; - } - - } // namespace --- -2.13.0 - Copied: chromium/repos/extra-i686/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch (from rev 299282, chromium/trunk/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch) =================================================================== --- extra-i686/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch (rev 0) +++ extra-i686/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch 2017-06-27 04:56:23 UTC (rev 299283) @@ -0,0 +1,118 @@ +From 27bab2297187099229a1e4304d8feb866c8da55a Mon Sep 17 00:00:00 2001 +From: "dongseong.hwang" <dongseong.hw...@intel.com> +Date: Tue, 18 Apr 2017 16:44:55 -0700 +Subject: [PATCH] ClientNativePixmapFactoryDmabuf uses ioctl, instead of + drmIoctl. + +DMA_BUF_SYNC ioctl is not drmIoctl, because it uses dma-buf fd, instead of drm +device fd. + +In addition, remove LOCAL_ prefix to fix build failure >= kernel 4.6 + +Actually, ChromeOS doesn't need this local DMA_BUF_SYNC definition as all +verion of kernel for cros has dma-buf.h header. +https://chromium-review.googlesource.com/c/459544/ +However, there is not any way to distinguish real ChromeOS build and +current_os="chromeos" build, so remain the local definition to ChromeOS as +well. + +BUG=584248 +R=reve...@chromium.org + +Review-Url: https://codereview.chromium.org/2805503003 +Cr-Commit-Position: refs/heads/master@{#465425} +--- + ui/gfx/linux/client_native_pixmap_dmabuf.cc | 49 +++++++++++++---------------- + 1 file changed, 21 insertions(+), 28 deletions(-) + +diff --git a/ui/gfx/linux/client_native_pixmap_dmabuf.cc b/ui/gfx/linux/client_native_pixmap_dmabuf.cc +index d656c338f0a6..1bb441dc25ce 100644 +--- a/ui/gfx/linux/client_native_pixmap_dmabuf.cc ++++ b/ui/gfx/linux/client_native_pixmap_dmabuf.cc +@@ -7,36 +7,35 @@ + #include <fcntl.h> + #include <linux/version.h> + #include <stddef.h> ++#include <sys/ioctl.h> + #include <sys/mman.h> + #include <xf86drm.h> + + #include "base/debug/crash_logging.h" + #include "base/memory/ptr_util.h" ++#include "base/posix/eintr_wrapper.h" + #include "base/process/memory.h" + #include "base/process/process_metrics.h" + #include "base/strings/stringprintf.h" + #include "base/trace_event/trace_event.h" + +-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0) ++#include <linux/dma-buf.h> ++#else + #include <linux/types.h> + +-struct local_dma_buf_sync { ++struct dma_buf_sync { + __u64 flags; + }; + +-#define LOCAL_DMA_BUF_SYNC_READ (1 << 0) +-#define LOCAL_DMA_BUF_SYNC_WRITE (2 << 0) +-#define LOCAL_DMA_BUF_SYNC_RW \ +- (LOCAL_DMA_BUF_SYNC_READ | LOCAL_DMA_BUF_SYNC_WRITE) +-#define LOCAL_DMA_BUF_SYNC_START (0 << 2) +-#define LOCAL_DMA_BUF_SYNC_END (1 << 2) ++#define DMA_BUF_SYNC_READ (1 << 0) ++#define DMA_BUF_SYNC_WRITE (2 << 0) ++#define DMA_BUF_SYNC_RW (DMA_BUF_SYNC_READ | DMA_BUF_SYNC_WRITE) ++#define DMA_BUF_SYNC_START (0 << 2) ++#define DMA_BUF_SYNC_END (1 << 2) + +-#define LOCAL_DMA_BUF_BASE 'b' +-#define LOCAL_DMA_BUF_IOCTL_SYNC \ +- _IOW(LOCAL_DMA_BUF_BASE, 0, struct local_dma_buf_sync) +- +-#else +-#include <linux/dma-buf.h> ++#define DMA_BUF_BASE 'b' ++#define DMA_BUF_IOCTL_SYNC _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync) + #endif + + namespace gfx { +@@ -44,25 +43,19 @@ namespace gfx { + namespace { + + void PrimeSyncStart(int dmabuf_fd) { +- struct local_dma_buf_sync sync_start = {0}; ++ struct dma_buf_sync sync_start = {0}; + +- sync_start.flags = LOCAL_DMA_BUF_SYNC_START | LOCAL_DMA_BUF_SYNC_RW; +-#if DCHECK_IS_ON() +- int rv = +-#endif +- drmIoctl(dmabuf_fd, LOCAL_DMA_BUF_IOCTL_SYNC, &sync_start); +- DPLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_START"; ++ sync_start.flags = DMA_BUF_SYNC_START | DMA_BUF_SYNC_RW; ++ int rv = HANDLE_EINTR(ioctl(dmabuf_fd, DMA_BUF_IOCTL_SYNC, &sync_start)); ++ PLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_START"; + } + + void PrimeSyncEnd(int dmabuf_fd) { +- struct local_dma_buf_sync sync_end = {0}; ++ struct dma_buf_sync sync_end = {0}; + +- sync_end.flags = LOCAL_DMA_BUF_SYNC_END | LOCAL_DMA_BUF_SYNC_RW; +-#if DCHECK_IS_ON() +- int rv = +-#endif +- drmIoctl(dmabuf_fd, LOCAL_DMA_BUF_IOCTL_SYNC, &sync_end); +- DPLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_END"; ++ sync_end.flags = DMA_BUF_SYNC_END | DMA_BUF_SYNC_RW; ++ int rv = HANDLE_EINTR(ioctl(dmabuf_fd, DMA_BUF_IOCTL_SYNC, &sync_end)); ++ PLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_END"; + } + + } // namespace +-- +2.13.0 + Copied: chromium/repos/extra-i686/0001-Clip-FreeType-glyph-bitmap-to-mask.patch (from rev 299282, chromium/trunk/0001-Clip-FreeType-glyph-bitmap-to-mask.patch) =================================================================== --- extra-i686/0001-Clip-FreeType-glyph-bitmap-to-mask.patch (rev 0) +++ extra-i686/0001-Clip-FreeType-glyph-bitmap-to-mask.patch 2017-06-27 04:56:23 UTC (rev 299283) @@ -0,0 +1,170 @@ +From 6cdb5f2ad7684302a8a66217462d2aef4c5f4632 Mon Sep 17 00:00:00 2001 +From: Ben Wagner <bunge...@behemoth.cnc.corp.google.com> +Date: Thu, 15 Jun 2017 10:43:17 -0400 +Subject: [PATCH] Clip FreeType glyph bitmap to mask. + +Skia has for some time assumed that when using FT_Render_Glyph with one +of the LCD render modes that one extra pixel would be applied to each +side of the resulting bitmap. FreieType has changed to make this more +conservative when possible, so the pre-allocated SkMask and the generated +FT_Bitmap may no longer agree on the size and origin. + +This change ensures the SkMask and FT_Bitmap are the same size and their +origins align. This is not an ideal long term fix, but is both simple and +localized for easy and quick back-porting, should that become necessary. + +BUG=skia:6663 + +Change-Id: I49ec8f45376be8d867e8aef54eab79537731c310 +Reviewed-on: https://skia-review.googlesource.com/20327 +Reviewed-by: Herb Derby <h...@google.com> +Commit-Queue: Ben Wagner <bunge...@google.com> +--- + src/ports/SkFontHost_FreeType_common.cpp | 100 +++++++++++++++++++++++++------ + 1 file changed, 83 insertions(+), 17 deletions(-) + +diff --git a/src/ports/SkFontHost_FreeType_common.cpp b/src/ports/SkFontHost_FreeType_common.cpp +index 9df7268bb4..a216fdb29c 100644 +--- a/src/ports/SkFontHost_FreeType_common.cpp ++++ b/src/ports/SkFontHost_FreeType_common.cpp +@@ -395,8 +395,6 @@ void SkScalerContext_FreeType_Base::generateGlyphImage( + 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) { +@@ -405,36 +403,97 @@ void SkScalerContext_FreeType_Base::generateGlyphImage( + // 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_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) { + SK_TRACEFTR(err, "Could not render glyph."); +- sk_bzero(glyph.fImage, glyph.computeImageSize()); + return; + } ++ + SkMask mask; + glyph.toMask(&mask); ++#ifdef SK_SHOW_TEXT_BLIT_COVERAGE ++ memset(mask.fImage, 0x80, mask.fBounds.height() * mask.fRowBytes); ++#endif ++ 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(); +@@ -442,8 +501,15 @@ void SkScalerContext_FreeType_Base::generateGlyphImage( + 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); ++#ifdef SK_SHOW_TEXT_BLIT_COVERAGE ++ for (int y = 0; y < glyph.fHeight; ++y) { ++ for (int x = 0; x < glyph.fWidth; ++x) { ++ uint8_t& a = ((uint8_t*)glyph.fImage)[(glyph.rowBytes() * y) + x]; ++ a = SkTMax<uint8_t>(a, 0x20); ++ } ++ } ++#endif + } + } break; + +-- +2.13.2 + Deleted: extra-i686/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch =================================================================== --- extra-i686/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch 2017-06-27 04:55:18 UTC (rev 299282) +++ extra-i686/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch 2017-06-27 04:56:23 UTC (rev 299283) @@ -1,35 +0,0 @@ -From 63901da067e069e298595618e01c4758c7896ff5 Mon Sep 17 00:00:00 2001 -From: thomasanderson <thomasander...@google.com> -Date: Fri, 28 Apr 2017 11:56:12 -0700 -Subject: [PATCH] Fix kernel version condition for including dma-buf.h - -Kernel 4.11 merges the commit that added linux/dma-buf.h -https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ef96152e6a36e0510387cb174178b7982c1ae879 - -This CL increases the required kernel to include this file to 4.11. - -BUG=707604 -R=dan...@chromium.org - -Review-Url: https://codereview.chromium.org/2851803002 -Cr-Commit-Position: refs/heads/master@{#468078} ---- - ui/gfx/linux/client_native_pixmap_dmabuf.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/ui/gfx/linux/client_native_pixmap_dmabuf.cc b/ui/gfx/linux/client_native_pixmap_dmabuf.cc -index 31ff4f4395b6..4927daf3a61d 100644 ---- a/ui/gfx/linux/client_native_pixmap_dmabuf.cc -+++ b/ui/gfx/linux/client_native_pixmap_dmabuf.cc -@@ -19,7 +19,7 @@ - #include "base/strings/stringprintf.h" - #include "base/trace_event/trace_event.h" - --#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0) -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) - #include <linux/dma-buf.h> - #else - #include <linux/types.h> --- -2.13.0 - Copied: chromium/repos/extra-i686/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch (from rev 299282, chromium/trunk/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch) =================================================================== --- extra-i686/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch (rev 0) +++ extra-i686/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch 2017-06-27 04:56:23 UTC (rev 299283) @@ -0,0 +1,35 @@ +From 63901da067e069e298595618e01c4758c7896ff5 Mon Sep 17 00:00:00 2001 +From: thomasanderson <thomasander...@google.com> +Date: Fri, 28 Apr 2017 11:56:12 -0700 +Subject: [PATCH] Fix kernel version condition for including dma-buf.h + +Kernel 4.11 merges the commit that added linux/dma-buf.h +https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ef96152e6a36e0510387cb174178b7982c1ae879 + +This CL increases the required kernel to include this file to 4.11. + +BUG=707604 +R=dan...@chromium.org + +Review-Url: https://codereview.chromium.org/2851803002 +Cr-Commit-Position: refs/heads/master@{#468078} +--- + ui/gfx/linux/client_native_pixmap_dmabuf.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ui/gfx/linux/client_native_pixmap_dmabuf.cc b/ui/gfx/linux/client_native_pixmap_dmabuf.cc +index 31ff4f4395b6..4927daf3a61d 100644 +--- a/ui/gfx/linux/client_native_pixmap_dmabuf.cc ++++ b/ui/gfx/linux/client_native_pixmap_dmabuf.cc +@@ -19,7 +19,7 @@ + #include "base/strings/stringprintf.h" + #include "base/trace_event/trace_event.h" + +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) + #include <linux/dma-buf.h> + #else + #include <linux/types.h> +-- +2.13.0 + Deleted: extra-i686/PKGBUILD =================================================================== --- extra-i686/PKGBUILD 2017-06-27 04:55:18 UTC (rev 299282) +++ extra-i686/PKGBUILD 2017-06-27 04:56:23 UTC (rev 299283) @@ -1,200 +0,0 @@ -# $Id: PKGBUILD 277477 2016-10-01 03:36:40Z foutrelis $ -# Maintainer: Evangelos Foutras <evange...@foutrelis.com> -# Contributor: Pierre Schmitz <pie...@archlinux.de> -# Contributor: Jan "heftig" Steffens <jan.steff...@gmail.com> -# Contributor: Daniel J Griffiths <ghost1...@archlinux.us> - -# Possible replacements are listed in build/linux/unbundle/replace_gn_files.py -# Keys are the names in the above script; values are the dependencies in Arch -declare -rgA _system_libs=( - #[ffmpeg]=ffmpeg # https://crbug.com/731766 - [flac]=flac - [harfbuzz-ng]=harfbuzz-icu - #[icu]=icu # Enable again when upstream supports ICU 59 - [libdrm]= - [libjpeg]=libjpeg - [libpng]=libpng - #[libvpx]=libvpx # https://bugs.gentoo.org/show_bug.cgi?id=611394 - [libwebp]=libwebp - [libxml]=libxml2 - [libxslt]=libxslt - [re2]=re2 - [snappy]=snappy - [yasm]= - [zlib]=minizip -) - -pkgname=chromium -pkgver=59.0.3071.109 -pkgrel=1 -_launcher_ver=5 -pkgdesc="A web browser built for speed, simplicity, and security" -arch=('i686' 'x86_64') -url="https://www.chromium.org/Home" -license=('BSD') -depends=('gtk3' 'nss' 'alsa-lib' 'xdg-utils' 'libxss' 'libcups' 'libgcrypt' - 'ttf-font' 'systemd' 'dbus' 'libpulse' 'pciutils' 'desktop-file-utils' - 'hicolor-icon-theme') -depends+=(${_system_libs[@]}) -makedepends=('python2' 'gperf' 'yasm' 'mesa' 'ninja' 'nodejs' 'git') -optdepends=('kdialog: needed for file dialogs in KDE' - 'gnome-keyring: for storing passwords in GNOME keyring' - 'kwallet: for storing passwords in KWallet') -install=chromium.install -source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.xz - chromium-launcher-$_launcher_ver.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz - chromium.desktop - chromium-system-ffmpeg-r6.patch - 0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch - 0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch - chromium-blink-gcc7.patch - chromium-v8-gcc7.patch - chromium-widevine.patch) -sha256sums=('83faeb3537428d83728258b28e907caaee6e6572bcd7d9b9a5f6009e7ea758d9' - '4dc3428f2c927955d9ae117f2fb24d098cc6dd67adb760ac9c82b522ec8b0587' - '028a748a5c275de9b8f776f97909f999a8583a4b77fd1cd600b4fc5c0c3e91e9' - '2fc21f48b95f9f2c2bd8576742fcf8028a8877c6b6e96c04d88184915982234e' - '9c081c84a4f85dbef82a9edf34cf0b1e8377c563874fd9c1b4efddf1476748f9' - '42eb6ada30d5d507f2bda2d2caece37e397e7086bc0d430db776fad143562fb6' - 'f94310a7ba9b8b777adfb4442bcc0a8f0a3d549b2cf4a156066f8e2e28e2f323' - '46dacc4fa52652b7d99b8996d6a97e5e3bac586f879aefb9fb95020d2c4e5aec' - 'd6fdcb922e5a7fbe15759d39ccc8ea4225821c44d98054ce0f23f9d1f00c9808') - -# 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 -# get your own set of keys. Feel free to contact foutre...@archlinux.org for -# more information. -_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM -_google_default_client_id=413772536636.apps.googleusercontent.com -_google_default_client_secret=0ZChLK6AxeA3Isu96MkwqDR4 - -prepare() { - cd "$srcdir/$pkgname-$pkgver" - - # Enable support for the Widevine CDM plugin - # libwidevinecdm.so is not included, but can be copied over from Chrome - # (Version string doesn't seem to matter so let's go with "Pinkie Pie") - sed "s/@WIDEVINE_VERSION@/Pinkie Pie/" ../chromium-widevine.patch | - patch -Np1 - - # https://bugs.chromium.org/p/chromium/issues/detail?id=707604 - patch -Np1 -i ../0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch - patch -Np1 -i ../0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch - - # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=853347 - patch -Np1 -i ../chromium-blink-gcc7.patch - - # https://bugs.chromium.org/p/chromium/issues/detail?id=614289 - patch -Np1 -i ../chromium-v8-gcc7.patch - - # Fixes from Gentoo - patch -Np1 -i ../chromium-system-ffmpeg-r6.patch - - # Use Python 2 - find . -name '*.py' -exec sed -i -r 's|/usr/bin/python$|&2|g' {} + - - # There are still a lot of relative calls which need a workaround - mkdir -p "$srcdir/python2-path" - ln -sf /usr/bin/python2 "$srcdir/python2-path/python" - - mkdir -p third_party/node/linux/node-linux-x64/bin - ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/ - - # Remove bundled libraries for which we will use the system copies; this - # *should* do what the remove_bundled_libraries.py script does, with the - # added benefit of not having to list all the remaining libraries - local _lib - for _lib in ${!_system_libs[@]} ${_system_libs[libjpeg]+libjpeg_turbo}; do - find -type f -path "*third_party/$_lib/*" \ - \! -path "*third_party/$_lib/chromium/*" \ - \! -path "*third_party/$_lib/google/*" \ - \! -path "*base/third_party/icu/*" \ - \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \ - -delete - done - - python2 build/linux/unbundle/replace_gn_files.py \ - --system-libraries "${!_system_libs[@]}" -} - -build() { - make -C chromium-launcher-$_launcher_ver - - cd "$srcdir/$pkgname-$pkgver" - - export PATH="$srcdir/python2-path:$PATH" - export TMPDIR="$srcdir/temp" - mkdir -p "$TMPDIR" - - local _flags=( - 'is_clang=false' - 'clang_use_chrome_plugins=false' - 'is_debug=false' - 'fatal_linker_warnings=false' - 'treat_warnings_as_errors=false' - 'fieldtrial_testing_like_official_build=true' - 'remove_webcore_debug_symbols=true' - 'ffmpeg_branding="Chrome"' - 'proprietary_codecs=true' - 'link_pulseaudio=true' - 'linux_use_bundled_binutils=false' - 'use_gtk3=true' - 'use_gconf=false' - 'use_gnome_keyring=false' - 'use_gold=false' - 'use_sysroot=false' - 'enable_hangout_services_extension=true' - 'enable_widevine=true' - 'enable_nacl=false' - 'enable_swiftshader=false' - "google_api_key=\"${_google_api_key}\"" - "google_default_client_id=\"${_google_default_client_id}\"" - "google_default_client_secret=\"${_google_default_client_secret}\"" - ) - - python2 tools/gn/bootstrap/bootstrap.py --gn-gen-args "${_flags[*]}" - out/Release/gn gen out/Release --args="${_flags[*]}" \ - --script-executable=/usr/bin/python2 - - ninja -C out/Release chrome chrome_sandbox chromedriver widevinecdmadapter -} - -package() { - cd chromium-launcher-$_launcher_ver - make PREFIX=/usr DESTDIR="$pkgdir" install - install -Dm644 LICENSE \ - "$pkgdir/usr/share/licenses/chromium/LICENSE.launcher" - - cd "$srcdir/$pkgname-$pkgver" - - install -D out/Release/chrome "$pkgdir/usr/lib/chromium/chromium" - install -Dm644 out/Release/chrome.1 "$pkgdir/usr/share/man/man1/chromium.1" - install -Dm644 "$srcdir/chromium.desktop" \ - "$pkgdir/usr/share/applications/chromium.desktop" - - install -Dm4755 out/Release/chrome_sandbox \ - "$pkgdir/usr/lib/chromium/chrome-sandbox" - - cp -a \ - out/Release/{chrome_{100,200}_percent,resources}.pak \ - out/Release/{*.bin,chromedriver,libwidevinecdmadapter.so} \ - out/Release/locales \ - out/Release/icudtl.dat \ - "$pkgdir/usr/lib/chromium/" - - ln -s /usr/lib/chromium/chromedriver "$pkgdir/usr/bin/chromedriver" - - for size in 22 24 48 64 128 256; do - install -Dm644 "chrome/app/theme/chromium/product_logo_$size.png" \ - "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png" - done - - for size in 16 32; do - install -Dm644 "chrome/app/theme/default_100_percent/chromium/product_logo_$size.png" \ - "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png" - done - - install -Dm644 LICENSE "$pkgdir/usr/share/licenses/chromium/LICENSE" -} - -# vim:set ts=2 sw=2 et: Copied: chromium/repos/extra-i686/PKGBUILD (from rev 299282, chromium/trunk/PKGBUILD) =================================================================== --- extra-i686/PKGBUILD (rev 0) +++ extra-i686/PKGBUILD 2017-06-27 04:56:23 UTC (rev 299283) @@ -0,0 +1,211 @@ +# $Id: PKGBUILD 277477 2016-10-01 03:36:40Z foutrelis $ +# Maintainer: Evangelos Foutras <evange...@foutrelis.com> +# Contributor: Pierre Schmitz <pie...@archlinux.de> +# Contributor: Jan "heftig" Steffens <jan.steff...@gmail.com> +# Contributor: Daniel J Griffiths <ghost1...@archlinux.us> + +# Possible replacements are listed in build/linux/unbundle/replace_gn_files.py +# Keys are the names in the above script; values are the dependencies in Arch +declare -rgA _system_libs=( + #[ffmpeg]=ffmpeg # https://crbug.com/731766 + [flac]=flac + [harfbuzz-ng]=harfbuzz-icu + #[icu]=icu # Enable again when upstream supports ICU 59 + [libdrm]= + [libjpeg]=libjpeg + [libpng]=libpng + #[libvpx]=libvpx # https://bugs.gentoo.org/show_bug.cgi?id=611394 + [libwebp]=libwebp + [libxml]=libxml2 + [libxslt]=libxslt + [re2]=re2 + [snappy]=snappy + [yasm]= + [zlib]=minizip +) + +pkgname=chromium +pkgver=59.0.3071.115 +pkgrel=1 +_launcher_ver=5 +_freetype_rev=5a3490e054bda8a318ebde482 +pkgdesc="A web browser built for speed, simplicity, and security" +arch=('i686' 'x86_64') +url="https://www.chromium.org/Home" +license=('BSD') +depends=('gtk3' 'nss' 'alsa-lib' 'xdg-utils' 'libxss' 'libcups' 'libgcrypt' + 'ttf-font' 'systemd' 'dbus' 'libpulse' 'pciutils' 'desktop-file-utils' + 'hicolor-icon-theme') +depends+=(${_system_libs[@]}) +makedepends=('python2' 'gperf' 'yasm' 'mesa' 'ninja' 'nodejs' 'git') +optdepends=('kdialog: needed for file dialogs in KDE' + 'gnome-keyring: for storing passwords in GNOME keyring' + 'kwallet: for storing passwords in KWallet') +install=chromium.install +source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.xz + chromium-launcher-$_launcher_ver.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz + chromium-freetype2::git+https://chromium.googlesource.com/chromium/src/third_party/freetype2#commit=$_freetype_rev + chromium.desktop + chromium-system-ffmpeg-r6.patch + 0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch + 0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch + 0001-Clip-FreeType-glyph-bitmap-to-mask.patch + chromium-blink-gcc7.patch + chromium-v8-gcc7.patch + chromium-widevine.patch) +sha256sums=('37cbc9955ae3b25cd4e9851a82ea97a0035021cc90658902938ad1c20f263170' + '4dc3428f2c927955d9ae117f2fb24d098cc6dd67adb760ac9c82b522ec8b0587' + 'SKIP' + '028a748a5c275de9b8f776f97909f999a8583a4b77fd1cd600b4fc5c0c3e91e9' + '2fc21f48b95f9f2c2bd8576742fcf8028a8877c6b6e96c04d88184915982234e' + '9c081c84a4f85dbef82a9edf34cf0b1e8377c563874fd9c1b4efddf1476748f9' + '42eb6ada30d5d507f2bda2d2caece37e397e7086bc0d430db776fad143562fb6' + 'e60aa0ff01f8bee67e45fde7bbe932901194984673ec4b10ea82bba1bace0cd7' + 'f94310a7ba9b8b777adfb4442bcc0a8f0a3d549b2cf4a156066f8e2e28e2f323' + '46dacc4fa52652b7d99b8996d6a97e5e3bac586f879aefb9fb95020d2c4e5aec' + 'd6fdcb922e5a7fbe15759d39ccc8ea4225821c44d98054ce0f23f9d1f00c9808') + +# 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 +# get your own set of keys. Feel free to contact foutre...@archlinux.org for +# more information. +_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM +_google_default_client_id=413772536636.apps.googleusercontent.com +_google_default_client_secret=0ZChLK6AxeA3Isu96MkwqDR4 + +prepare() { + cd "$srcdir/$pkgname-$pkgver" + + # https://groups.google.com/a/chromium.org/d/msg/chromium-packagers/wuInaKJkosg/kMfIV_7wDgAJ + mv "$srcdir/chromium-freetype2" third_party/freetype/src + + # Enable support for the Widevine CDM plugin + # libwidevinecdm.so is not included, but can be copied over from Chrome + # (Version string doesn't seem to matter so let's go with "Pinkie Pie") + sed "s/@WIDEVINE_VERSION@/Pinkie Pie/" ../chromium-widevine.patch | + patch -Np1 + + # https://bugs.chromium.org/p/chromium/issues/detail?id=707604 + patch -Np1 -i ../0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch + patch -Np1 -i ../0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch + + # https://bugs.chromium.org/p/skia/issues/detail?id=6663 + patch -Np1 -d third_party/skia <../0001-Clip-FreeType-glyph-bitmap-to-mask.patch + + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=853347 + patch -Np1 -i ../chromium-blink-gcc7.patch + + # https://bugs.chromium.org/p/chromium/issues/detail?id=614289 + patch -Np1 -i ../chromium-v8-gcc7.patch + + # Fixes from Gentoo + patch -Np1 -i ../chromium-system-ffmpeg-r6.patch + + # Use Python 2 + find . -name '*.py' -exec sed -i -r 's|/usr/bin/python$|&2|g' {} + + + # There are still a lot of relative calls which need a workaround + mkdir -p "$srcdir/python2-path" + ln -sf /usr/bin/python2 "$srcdir/python2-path/python" + + mkdir -p third_party/node/linux/node-linux-x64/bin + ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/ + + # Remove bundled libraries for which we will use the system copies; this + # *should* do what the remove_bundled_libraries.py script does, with the + # added benefit of not having to list all the remaining libraries + local _lib + for _lib in ${!_system_libs[@]} ${_system_libs[libjpeg]+libjpeg_turbo}; do + find -type f -path "*third_party/$_lib/*" \ + \! -path "*third_party/$_lib/chromium/*" \ + \! -path "*third_party/$_lib/google/*" \ + \! -path "*base/third_party/icu/*" \ + \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \ + -delete + done + + python2 build/linux/unbundle/replace_gn_files.py \ + --system-libraries "${!_system_libs[@]}" +} + +build() { + make -C chromium-launcher-$_launcher_ver + + cd "$srcdir/$pkgname-$pkgver" + + export PATH="$srcdir/python2-path:$PATH" + export TMPDIR="$srcdir/temp" + mkdir -p "$TMPDIR" + + local _flags=( + 'is_clang=false' + 'clang_use_chrome_plugins=false' + 'is_debug=false' + 'fatal_linker_warnings=false' + 'treat_warnings_as_errors=false' + 'fieldtrial_testing_like_official_build=true' + 'remove_webcore_debug_symbols=true' + 'ffmpeg_branding="Chrome"' + 'proprietary_codecs=true' + 'link_pulseaudio=true' + 'linux_use_bundled_binutils=false' + 'use_gtk3=true' + 'use_gconf=false' + 'use_gnome_keyring=false' + 'use_gold=false' + 'use_sysroot=false' + 'enable_hangout_services_extension=true' + 'enable_widevine=true' + 'enable_nacl=false' + 'enable_swiftshader=false' + "google_api_key=\"${_google_api_key}\"" + "google_default_client_id=\"${_google_default_client_id}\"" + "google_default_client_secret=\"${_google_default_client_secret}\"" + ) + + python2 tools/gn/bootstrap/bootstrap.py --gn-gen-args "${_flags[*]}" + out/Release/gn gen out/Release --args="${_flags[*]}" \ + --script-executable=/usr/bin/python2 + + ninja -C out/Release chrome chrome_sandbox chromedriver widevinecdmadapter +} + +package() { + cd chromium-launcher-$_launcher_ver + make PREFIX=/usr DESTDIR="$pkgdir" install + install -Dm644 LICENSE \ + "$pkgdir/usr/share/licenses/chromium/LICENSE.launcher" + + cd "$srcdir/$pkgname-$pkgver" + + install -D out/Release/chrome "$pkgdir/usr/lib/chromium/chromium" + install -Dm644 out/Release/chrome.1 "$pkgdir/usr/share/man/man1/chromium.1" + install -Dm644 "$srcdir/chromium.desktop" \ + "$pkgdir/usr/share/applications/chromium.desktop" + + install -Dm4755 out/Release/chrome_sandbox \ + "$pkgdir/usr/lib/chromium/chrome-sandbox" + + cp -a \ + out/Release/{chrome_{100,200}_percent,resources}.pak \ + out/Release/{*.bin,chromedriver,libwidevinecdmadapter.so} \ + out/Release/locales \ + out/Release/icudtl.dat \ + "$pkgdir/usr/lib/chromium/" + + ln -s /usr/lib/chromium/chromedriver "$pkgdir/usr/bin/chromedriver" + + for size in 22 24 48 64 128 256; do + install -Dm644 "chrome/app/theme/chromium/product_logo_$size.png" \ + "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png" + done + + for size in 16 32; do + install -Dm644 "chrome/app/theme/default_100_percent/chromium/product_logo_$size.png" \ + "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png" + done + + install -Dm644 LICENSE "$pkgdir/usr/share/licenses/chromium/LICENSE" +} + +# vim:set ts=2 sw=2 et: Deleted: extra-i686/chromium-blink-gcc7.patch =================================================================== --- extra-i686/chromium-blink-gcc7.patch 2017-06-27 04:55:18 UTC (rev 299282) +++ extra-i686/chromium-blink-gcc7.patch 2017-06-27 04:56:23 UTC (rev 299283) @@ -1,76 +0,0 @@ ---- chromium-59.0.3071.86/third_party/WebKit/Source/platform/wtf/LinkedHashSet.h.orig 2017-06-06 15:05:38.145247996 +0300 -+++ chromium-59.0.3071.86/third_party/WebKit/Source/platform/wtf/LinkedHashSet.h 2017-06-06 15:06:13.866246667 +0300 -@@ -685,6 +685,31 @@ inline LinkedHashSet<T, U, V, W>& Linked - return *this; - } - -+inline void SwapAnchor(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) { -+ DCHECK(a.prev_); -+ DCHECK(a.next_); -+ DCHECK(b.prev_); -+ DCHECK(b.next_); -+ swap(a.prev_, b.prev_); -+ swap(a.next_, b.next_); -+ if (b.next_ == &a) { -+ DCHECK_EQ(b.prev_, &a); -+ b.next_ = &b; -+ b.prev_ = &b; -+ } else { -+ b.next_->prev_ = &b; -+ b.prev_->next_ = &b; -+ } -+ if (a.next_ == &b) { -+ DCHECK_EQ(a.prev_, &b); -+ a.next_ = &a; -+ a.prev_ = &a; -+ } else { -+ a.next_->prev_ = &a; -+ a.prev_->next_ = &a; -+ } -+} -+ - template <typename T, typename U, typename V, typename W> - inline void LinkedHashSet<T, U, V, W>::Swap(LinkedHashSet& other) { - impl_.Swap(other.impl_); -@@ -877,31 +902,6 @@ inline void LinkedHashSet<T, U, V, W>::e - erase(Find(value)); - } - --inline void SwapAnchor(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) { -- DCHECK(a.prev_); -- DCHECK(a.next_); -- DCHECK(b.prev_); -- DCHECK(b.next_); -- swap(a.prev_, b.prev_); -- swap(a.next_, b.next_); -- if (b.next_ == &a) { -- DCHECK_EQ(b.prev_, &a); -- b.next_ = &b; -- b.prev_ = &b; -- } else { -- b.next_->prev_ = &b; -- b.prev_->next_ = &b; -- } -- if (a.next_ == &b) { -- DCHECK_EQ(a.prev_, &b); -- a.next_ = &a; -- a.prev_ = &a; -- } else { -- a.next_->prev_ = &a; -- a.prev_->next_ = &a; -- } --} -- - inline void swap(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) { - DCHECK_NE(a.next_, &a); - DCHECK_NE(b.next_, &b); ---- chromium-59.0.3071.86/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.orig 2017-06-06 16:16:43.657661313 +0300 -+++ chromium-59.0.3071.86/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h 2017-06-06 16:16:50.911198032 +0300 -@@ -5,6 +5,7 @@ - #include "platform/PlatformExport.h" - #include "platform/wtf/ThreadSpecific.h" - -+#include <functional> - #include <memory> - - namespace gpu { Copied: chromium/repos/extra-i686/chromium-blink-gcc7.patch (from rev 299282, chromium/trunk/chromium-blink-gcc7.patch) =================================================================== --- extra-i686/chromium-blink-gcc7.patch (rev 0) +++ extra-i686/chromium-blink-gcc7.patch 2017-06-27 04:56:23 UTC (rev 299283) @@ -0,0 +1,76 @@ +--- chromium-59.0.3071.86/third_party/WebKit/Source/platform/wtf/LinkedHashSet.h.orig 2017-06-06 15:05:38.145247996 +0300 ++++ chromium-59.0.3071.86/third_party/WebKit/Source/platform/wtf/LinkedHashSet.h 2017-06-06 15:06:13.866246667 +0300 +@@ -685,6 +685,31 @@ inline LinkedHashSet<T, U, V, W>& Linked + return *this; + } + ++inline void SwapAnchor(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) { ++ DCHECK(a.prev_); ++ DCHECK(a.next_); ++ DCHECK(b.prev_); ++ DCHECK(b.next_); ++ swap(a.prev_, b.prev_); ++ swap(a.next_, b.next_); ++ if (b.next_ == &a) { ++ DCHECK_EQ(b.prev_, &a); ++ b.next_ = &b; ++ b.prev_ = &b; ++ } else { ++ b.next_->prev_ = &b; ++ b.prev_->next_ = &b; ++ } ++ if (a.next_ == &b) { ++ DCHECK_EQ(a.prev_, &b); ++ a.next_ = &a; ++ a.prev_ = &a; ++ } else { ++ a.next_->prev_ = &a; ++ a.prev_->next_ = &a; ++ } ++} ++ + template <typename T, typename U, typename V, typename W> + inline void LinkedHashSet<T, U, V, W>::Swap(LinkedHashSet& other) { + impl_.Swap(other.impl_); +@@ -877,31 +902,6 @@ inline void LinkedHashSet<T, U, V, W>::e + erase(Find(value)); + } + +-inline void SwapAnchor(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) { +- DCHECK(a.prev_); +- DCHECK(a.next_); +- DCHECK(b.prev_); +- DCHECK(b.next_); +- swap(a.prev_, b.prev_); +- swap(a.next_, b.next_); +- if (b.next_ == &a) { +- DCHECK_EQ(b.prev_, &a); +- b.next_ = &b; +- b.prev_ = &b; +- } else { +- b.next_->prev_ = &b; +- b.prev_->next_ = &b; +- } +- if (a.next_ == &b) { +- DCHECK_EQ(a.prev_, &b); +- a.next_ = &a; +- a.prev_ = &a; +- } else { +- a.next_->prev_ = &a; +- a.prev_->next_ = &a; +- } +-} +- + inline void swap(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) { + DCHECK_NE(a.next_, &a); + DCHECK_NE(b.next_, &b); +--- chromium-59.0.3071.86/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.orig 2017-06-06 16:16:43.657661313 +0300 ++++ chromium-59.0.3071.86/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h 2017-06-06 16:16:50.911198032 +0300 +@@ -5,6 +5,7 @@ + #include "platform/PlatformExport.h" + #include "platform/wtf/ThreadSpecific.h" + ++#include <functional> + #include <memory> + + namespace gpu { Deleted: extra-i686/chromium-system-ffmpeg-r6.patch =================================================================== --- extra-i686/chromium-system-ffmpeg-r6.patch 2017-06-27 04:55:18 UTC (rev 299282) +++ extra-i686/chromium-system-ffmpeg-r6.patch 2017-06-27 04:56:23 UTC (rev 299283) @@ -1,43 +0,0 @@ ---- a/media/ffmpeg/ffmpeg_common.h.orig 2017-04-07 18:17:22.623538889 +0000 -+++ b/media/ffmpeg/ffmpeg_common.h 2017-04-07 18:18:16.780656283 +0000 -@@ -23,10 +23,12 @@ - - // Include FFmpeg header files. - extern "C" { -+#if !defined(USE_SYSTEM_FFMPEG) - // Disable deprecated features which result in spammy compile warnings. This - // list of defines must mirror those in the 'defines' section of FFmpeg's - // BUILD.gn file or the headers below will generate different structures! - #define FF_API_CONVERGENCE_DURATION 0 -+#endif // !defined(USE_SYSTEM_FFMPEG) - // Upstream libavcodec/utils.c still uses the deprecated - // av_dup_packet(), causing deprecation warnings. - // The normal fix for such things is to disable the feature as below, -@@ -40,7 +42,9 @@ - MSVC_PUSH_DISABLE_WARNING(4244); - #include <libavcodec/avcodec.h> - #include <libavformat/avformat.h> -+#if !defined(USE_SYSTEM_FFMPEG) - #include <libavformat/internal.h> -+#endif // !defined(USE_SYSTEM_FFMPEG) - #include <libavformat/avio.h> - #include <libavutil/avutil.h> - #include <libavutil/imgutils.h> ---- a/media/filters/ffmpeg_demuxer.cc.orig 2017-04-07 18:15:14.776901183 +0000 -+++ b/media/filters/ffmpeg_demuxer.cc 2017-04-07 18:15:54.813727201 +0000 -@@ -1223,6 +1223,7 @@ - // If no estimate is found, the stream entry will be kInfiniteDuration. - std::vector<base::TimeDelta> start_time_estimates(format_context->nb_streams, - kInfiniteDuration); -+#if !defined(USE_SYSTEM_FFMPEG) - const AVFormatInternal* internal = format_context->internal; - if (internal && internal->packet_buffer && - format_context->start_time != static_cast<int64_t>(AV_NOPTS_VALUE)) { -@@ -1246,6 +1247,7 @@ - packet_buffer = packet_buffer->next; - } - } -+#endif // !defined(USE_SYSTEM_FFMPEG) - - std::unique_ptr<MediaTracks> media_tracks(new MediaTracks()); - Copied: chromium/repos/extra-i686/chromium-system-ffmpeg-r6.patch (from rev 299282, chromium/trunk/chromium-system-ffmpeg-r6.patch) =================================================================== --- extra-i686/chromium-system-ffmpeg-r6.patch (rev 0) +++ extra-i686/chromium-system-ffmpeg-r6.patch 2017-06-27 04:56:23 UTC (rev 299283) @@ -0,0 +1,43 @@ +--- a/media/ffmpeg/ffmpeg_common.h.orig 2017-04-07 18:17:22.623538889 +0000 ++++ b/media/ffmpeg/ffmpeg_common.h 2017-04-07 18:18:16.780656283 +0000 +@@ -23,10 +23,12 @@ + + // Include FFmpeg header files. + extern "C" { ++#if !defined(USE_SYSTEM_FFMPEG) + // Disable deprecated features which result in spammy compile warnings. This + // list of defines must mirror those in the 'defines' section of FFmpeg's + // BUILD.gn file or the headers below will generate different structures! + #define FF_API_CONVERGENCE_DURATION 0 ++#endif // !defined(USE_SYSTEM_FFMPEG) + // Upstream libavcodec/utils.c still uses the deprecated + // av_dup_packet(), causing deprecation warnings. + // The normal fix for such things is to disable the feature as below, +@@ -40,7 +42,9 @@ + MSVC_PUSH_DISABLE_WARNING(4244); + #include <libavcodec/avcodec.h> + #include <libavformat/avformat.h> ++#if !defined(USE_SYSTEM_FFMPEG) + #include <libavformat/internal.h> ++#endif // !defined(USE_SYSTEM_FFMPEG) + #include <libavformat/avio.h> + #include <libavutil/avutil.h> + #include <libavutil/imgutils.h> +--- a/media/filters/ffmpeg_demuxer.cc.orig 2017-04-07 18:15:14.776901183 +0000 ++++ b/media/filters/ffmpeg_demuxer.cc 2017-04-07 18:15:54.813727201 +0000 +@@ -1223,6 +1223,7 @@ + // If no estimate is found, the stream entry will be kInfiniteDuration. + std::vector<base::TimeDelta> start_time_estimates(format_context->nb_streams, + kInfiniteDuration); ++#if !defined(USE_SYSTEM_FFMPEG) + const AVFormatInternal* internal = format_context->internal; + if (internal && internal->packet_buffer && + format_context->start_time != static_cast<int64_t>(AV_NOPTS_VALUE)) { +@@ -1246,6 +1247,7 @@ + packet_buffer = packet_buffer->next; + } + } ++#endif // !defined(USE_SYSTEM_FFMPEG) + + std::unique_ptr<MediaTracks> media_tracks(new MediaTracks()); + Deleted: extra-i686/chromium-v8-gcc7.patch =================================================================== --- extra-i686/chromium-v8-gcc7.patch 2017-06-27 04:55:18 UTC (rev 299282) +++ extra-i686/chromium-v8-gcc7.patch 2017-06-27 04:56:23 UTC (rev 299283) @@ -1,73 +0,0 @@ -diff -upr chromium-59.0.3071.86.orig/v8/src/objects/hash-table.h chromium-59.0.3071.86/v8/src/objects/hash-table.h ---- chromium-59.0.3071.86.orig/v8/src/objects/hash-table.h 2017-06-05 22:04:29.000000000 +0300 -+++ chromium-59.0.3071.86/v8/src/objects/hash-table.h 2017-06-06 14:35:41.558245559 +0300 -@@ -135,22 +135,10 @@ class HashTable : public HashTableBase { - public: - typedef Shape ShapeT; - -- // Wrapper methods -- inline uint32_t Hash(Key key) { -- if (Shape::UsesSeed) { -- return Shape::SeededHash(key, GetHeap()->HashSeed()); -- } else { -- return Shape::Hash(key); -- } -- } -- -- inline uint32_t HashForObject(Key key, Object* object) { -- if (Shape::UsesSeed) { -- return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object); -- } else { -- return Shape::HashForObject(key, object); -- } -- } -+ // Wrapper methods. Defined in src/objects-inl.h -+ // to break a cycle with src/heap/heap.h. -+ inline uint32_t Hash(Key key); -+ inline uint32_t HashForObject(Key key, Object* object); - - // Returns a new HashTable object. - MUST_USE_RESULT static Handle<Derived> New( -diff -upr chromium-59.0.3071.86.orig/v8/src/objects-body-descriptors.h chromium-59.0.3071.86/v8/src/objects-body-descriptors.h ---- chromium-59.0.3071.86.orig/v8/src/objects-body-descriptors.h 2017-06-05 22:04:29.000000000 +0300 -+++ chromium-59.0.3071.86/v8/src/objects-body-descriptors.h 2017-06-06 14:35:41.554912132 +0300 -@@ -99,7 +99,7 @@ class FixedBodyDescriptor final : public - - template <typename StaticVisitor> - static inline void IterateBody(HeapObject* obj, int object_size) { -- IterateBody(obj); -+ IterateBody<StaticVisitor>(obj); - } - }; - -diff -upr chromium-59.0.3071.86.orig/v8/src/objects-inl.h chromium-59.0.3071.86/v8/src/objects-inl.h ---- chromium-59.0.3071.86.orig/v8/src/objects-inl.h 2017-06-05 22:04:29.000000000 +0300 -+++ chromium-59.0.3071.86/v8/src/objects-inl.h 2017-06-06 14:35:41.558245559 +0300 -@@ -46,6 +46,27 @@ - namespace v8 { - namespace internal { - -+template <typename Derived, typename Shape, typename Key> -+uint32_t HashTable<Derived, Shape, Key>::Hash(Key key) { -+ if (Shape::UsesSeed) { -+ return Shape::SeededHash(key, GetHeap()->HashSeed()); -+ } else { -+ return Shape::Hash(key); -+ } -+} -+ -+ -+template <typename Derived, typename Shape, typename Key> -+uint32_t HashTable<Derived, Shape, Key>::HashForObject(Key key, -+ Object* object) { -+ if (Shape::UsesSeed) { -+ return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object); -+ } else { -+ return Shape::HashForObject(key, object); -+ } -+} -+ -+ - PropertyDetails::PropertyDetails(Smi* smi) { - value_ = smi->value(); - } Copied: chromium/repos/extra-i686/chromium-v8-gcc7.patch (from rev 299282, chromium/trunk/chromium-v8-gcc7.patch) =================================================================== --- extra-i686/chromium-v8-gcc7.patch (rev 0) +++ extra-i686/chromium-v8-gcc7.patch 2017-06-27 04:56:23 UTC (rev 299283) @@ -0,0 +1,73 @@ +diff -upr chromium-59.0.3071.86.orig/v8/src/objects/hash-table.h chromium-59.0.3071.86/v8/src/objects/hash-table.h +--- chromium-59.0.3071.86.orig/v8/src/objects/hash-table.h 2017-06-05 22:04:29.000000000 +0300 ++++ chromium-59.0.3071.86/v8/src/objects/hash-table.h 2017-06-06 14:35:41.558245559 +0300 +@@ -135,22 +135,10 @@ class HashTable : public HashTableBase { + public: + typedef Shape ShapeT; + +- // Wrapper methods +- inline uint32_t Hash(Key key) { +- if (Shape::UsesSeed) { +- return Shape::SeededHash(key, GetHeap()->HashSeed()); +- } else { +- return Shape::Hash(key); +- } +- } +- +- inline uint32_t HashForObject(Key key, Object* object) { +- if (Shape::UsesSeed) { +- return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object); +- } else { +- return Shape::HashForObject(key, object); +- } +- } ++ // Wrapper methods. Defined in src/objects-inl.h ++ // to break a cycle with src/heap/heap.h. ++ inline uint32_t Hash(Key key); ++ inline uint32_t HashForObject(Key key, Object* object); + + // Returns a new HashTable object. + MUST_USE_RESULT static Handle<Derived> New( +diff -upr chromium-59.0.3071.86.orig/v8/src/objects-body-descriptors.h chromium-59.0.3071.86/v8/src/objects-body-descriptors.h +--- chromium-59.0.3071.86.orig/v8/src/objects-body-descriptors.h 2017-06-05 22:04:29.000000000 +0300 ++++ chromium-59.0.3071.86/v8/src/objects-body-descriptors.h 2017-06-06 14:35:41.554912132 +0300 +@@ -99,7 +99,7 @@ class FixedBodyDescriptor final : public + + template <typename StaticVisitor> + static inline void IterateBody(HeapObject* obj, int object_size) { +- IterateBody(obj); ++ IterateBody<StaticVisitor>(obj); + } + }; + +diff -upr chromium-59.0.3071.86.orig/v8/src/objects-inl.h chromium-59.0.3071.86/v8/src/objects-inl.h +--- chromium-59.0.3071.86.orig/v8/src/objects-inl.h 2017-06-05 22:04:29.000000000 +0300 ++++ chromium-59.0.3071.86/v8/src/objects-inl.h 2017-06-06 14:35:41.558245559 +0300 +@@ -46,6 +46,27 @@ + namespace v8 { + namespace internal { + ++template <typename Derived, typename Shape, typename Key> ++uint32_t HashTable<Derived, Shape, Key>::Hash(Key key) { ++ if (Shape::UsesSeed) { ++ return Shape::SeededHash(key, GetHeap()->HashSeed()); ++ } else { ++ return Shape::Hash(key); ++ } ++} ++ ++ ++template <typename Derived, typename Shape, typename Key> ++uint32_t HashTable<Derived, Shape, Key>::HashForObject(Key key, ++ Object* object) { ++ if (Shape::UsesSeed) { ++ return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object); ++ } else { ++ return Shape::HashForObject(key, object); ++ } ++} ++ ++ + PropertyDetails::PropertyDetails(Smi* smi) { + value_ = smi->value(); + } Deleted: extra-i686/chromium-widevine.patch =================================================================== --- extra-i686/chromium-widevine.patch 2017-06-27 04:55:18 UTC (rev 299282) +++ extra-i686/chromium-widevine.patch 2017-06-27 04:56:23 UTC (rev 299283) @@ -1,10 +0,0 @@ -diff -upr chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_version.h chromium-48.0.2564.82/third_party/widevine/cdm/stub/widevine_cdm_version.h ---- chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_version.h 2016-01-14 01:05:17.000000000 +0200 -+++ chromium-48.0.2564.82/third_party/widevine/cdm/stub/widevine_cdm_version.h 2016-01-21 19:18:51.287978456 +0200 -@@ -12,4 +12,6 @@ - - #define WIDEVINE_CDM_AVAILABLE - -+#define WIDEVINE_CDM_VERSION_STRING "@WIDEVINE_VERSION@" -+ - #endif // WIDEVINE_CDM_VERSION_H_ Copied: chromium/repos/extra-i686/chromium-widevine.patch (from rev 299282, chromium/trunk/chromium-widevine.patch) =================================================================== --- extra-i686/chromium-widevine.patch (rev 0) +++ extra-i686/chromium-widevine.patch 2017-06-27 04:56:23 UTC (rev 299283) @@ -0,0 +1,10 @@ +diff -upr chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_version.h chromium-48.0.2564.82/third_party/widevine/cdm/stub/widevine_cdm_version.h +--- chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_version.h 2016-01-14 01:05:17.000000000 +0200 ++++ chromium-48.0.2564.82/third_party/widevine/cdm/stub/widevine_cdm_version.h 2016-01-21 19:18:51.287978456 +0200 +@@ -12,4 +12,6 @@ + + #define WIDEVINE_CDM_AVAILABLE + ++#define WIDEVINE_CDM_VERSION_STRING "@WIDEVINE_VERSION@" ++ + #endif // WIDEVINE_CDM_VERSION_H_ Deleted: extra-i686/chromium.desktop =================================================================== --- extra-i686/chromium.desktop 2017-06-27 04:55:18 UTC (rev 299282) +++ extra-i686/chromium.desktop 2017-06-27 04:56:23 UTC (rev 299283) @@ -1,112 +0,0 @@ -[Desktop Entry] -Name=Chromium -# Only KDE 4 seems to use GenericName, so we reuse the KDE strings. -# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413. -GenericName=Web Browser -GenericName[ar]=متصفح الشبكة -GenericName[bg]=Уеб браузър -GenericName[ca]=Navegador web -GenericName[cs]=WWW prohlížeč -GenericName[da]=Browser -GenericName[de]=Web-Browser -GenericName[el]=Περιηγητής ιστού -GenericName[en_GB]=Web Browser -GenericName[es]=Navegador web -GenericName[et]=Veebibrauser -GenericName[fi]=WWW-selain -GenericName[fr]=Navigateur Web -GenericName[gu]=વેબ બ્રાઉઝર -GenericName[he]=דפדפן אינטרנט -GenericName[hi]=वेब ब्राउज़र -GenericName[hu]=Webböngésző -GenericName[it]=Browser Web -GenericName[ja]=ウェブブラウザ -GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ -GenericName[ko]=웹 브라우저 -GenericName[lt]=Žiniatinklio naršyklė -GenericName[lv]=Tīmekļa pārlūks -GenericName[ml]=വെബ് ബ്രൌസര് -GenericName[mr]=वेब ब्राऊजर -GenericName[nb]=Nettleser -GenericName[nl]=Webbrowser -GenericName[pl]=Przeglądarka WWW -GenericName[pt]=Navegador Web -GenericName[pt_BR]=Navegador da Internet -GenericName[ro]=Navigator de Internet -GenericName[ru]=Веб-браузер -GenericName[sl]=Spletni brskalnik -GenericName[sv]=Webbläsare -GenericName[ta]=இணைய உலாவி -GenericName[th]=เว็บเบราว์เซอร์ -GenericName[tr]=Web Tarayıcı -GenericName[uk]=Навігатор Тенет -GenericName[zh_CN]=网页浏览器 -GenericName[zh_HK]=網頁瀏覽器 -GenericName[zh_TW]=網頁瀏覽器 -# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1. -GenericName[bn]=ওয়েব ব্রাউজার -GenericName[fil]=Web Browser -GenericName[hr]=Web preglednik -GenericName[id]=Browser Web -GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର -GenericName[sk]=WWW prehliadač -GenericName[sr]=Интернет прегледник -GenericName[te]=మహాతల అన్వేషి -GenericName[vi]=Bộ duyệt Web -# Gnome and KDE 3 uses Comment. -Comment=Access the Internet -Comment[ar]=الدخول إلى الإنترنت -Comment[bg]=Достъп до интернет -Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন -Comment[ca]=Accedeix a Internet -Comment[cs]=Přístup k internetu -Comment[da]=Få adgang til internettet -Comment[de]=Internetzugriff -Comment[el]=Πρόσβαση στο Διαδίκτυο -Comment[en_GB]=Access the Internet -Comment[es]=Accede a Internet. -Comment[et]=Pääs Internetti -Comment[fi]=Käytä internetiä -Comment[fil]=I-access ang Internet -Comment[fr]=Accéder à Internet -Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો -Comment[he]=גישה אל האינטרנט -Comment[hi]=इंटरनेट तक पहुंच स्थापित करें -Comment[hr]=Pristup Internetu -Comment[hu]=Internetelérés -Comment[id]=Akses Internet -Comment[it]=Accesso a Internet -Comment[ja]=インターネットにアクセス -Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ -Comment[ko]=인터넷 연결 -Comment[lt]=Interneto prieiga -Comment[lv]=Piekļūt internetam -Comment[ml]=ഇന്റര്നെറ്റ് ആക്സസ് ചെയ്യുക -Comment[mr]=इंटरनेटमध्ये प्रवेश करा -Comment[nb]=Gå til Internett -Comment[nl]=Verbinding maken met internet -Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ -Comment[pl]=Skorzystaj z internetu -Comment[pt]=Aceder à Internet -Comment[pt_BR]=Acessar a internet -Comment[ro]=Accesaţi Internetul -Comment[ru]=Доступ в Интернет -Comment[sk]=Prístup do siete Internet -Comment[sl]=Dostop do interneta -Comment[sr]=Приступите Интернету -Comment[sv]=Gå ut på Internet -Comment[ta]=இணையத்தை அணுகுதல் -Comment[te]=ఇంటర్నెట్ను ఆక్సెస్ చెయ్యండి -Comment[th]=เข้าถึงอินเทอร์เน็ต -Comment[tr]=İnternet'e erişin -Comment[uk]=Доступ до Інтернету -Comment[vi]=Truy cập Internet -Comment[zh_CN]=访问互联网 -Comment[zh_HK]=連線到網際網路 -Comment[zh_TW]=連線到網際網路 -Exec=chromium %U -Terminal=false -Icon=chromium -Type=Application -Categories=GTK;Network;WebBrowser; -MimeType=text/html;text/xml;application/xhtml+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https; Copied: chromium/repos/extra-i686/chromium.desktop (from rev 299282, chromium/trunk/chromium.desktop) =================================================================== --- extra-i686/chromium.desktop (rev 0) +++ extra-i686/chromium.desktop 2017-06-27 04:56:23 UTC (rev 299283) @@ -0,0 +1,112 @@ +[Desktop Entry] +Name=Chromium +# Only KDE 4 seems to use GenericName, so we reuse the KDE strings. +# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413. +GenericName=Web Browser +GenericName[ar]=متصفح الشبكة +GenericName[bg]=Уеб браузър +GenericName[ca]=Navegador web +GenericName[cs]=WWW prohlížeč +GenericName[da]=Browser +GenericName[de]=Web-Browser +GenericName[el]=Περιηγητής ιστού +GenericName[en_GB]=Web Browser +GenericName[es]=Navegador web +GenericName[et]=Veebibrauser +GenericName[fi]=WWW-selain +GenericName[fr]=Navigateur Web +GenericName[gu]=વેબ બ્રાઉઝર +GenericName[he]=דפדפן אינטרנט +GenericName[hi]=वेब ब्राउज़र +GenericName[hu]=Webböngésző +GenericName[it]=Browser Web +GenericName[ja]=ウェブブラウザ +GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ +GenericName[ko]=웹 브라우저 +GenericName[lt]=Žiniatinklio naršyklė +GenericName[lv]=Tīmekļa pārlūks +GenericName[ml]=വെബ് ബ്രൌസര് +GenericName[mr]=वेब ब्राऊजर +GenericName[nb]=Nettleser +GenericName[nl]=Webbrowser +GenericName[pl]=Przeglądarka WWW +GenericName[pt]=Navegador Web +GenericName[pt_BR]=Navegador da Internet +GenericName[ro]=Navigator de Internet +GenericName[ru]=Веб-браузер +GenericName[sl]=Spletni brskalnik +GenericName[sv]=Webbläsare +GenericName[ta]=இணைய உலாவி +GenericName[th]=เว็บเบราว์เซอร์ +GenericName[tr]=Web Tarayıcı +GenericName[uk]=Навігатор Тенет +GenericName[zh_CN]=网页浏览器 +GenericName[zh_HK]=網頁瀏覽器 +GenericName[zh_TW]=網頁瀏覽器 +# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1. +GenericName[bn]=ওয়েব ব্রাউজার +GenericName[fil]=Web Browser +GenericName[hr]=Web preglednik +GenericName[id]=Browser Web +GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର +GenericName[sk]=WWW prehliadač +GenericName[sr]=Интернет прегледник +GenericName[te]=మహాతల అన్వేషి +GenericName[vi]=Bộ duyệt Web +# Gnome and KDE 3 uses Comment. +Comment=Access the Internet +Comment[ar]=الدخول إلى الإنترنت +Comment[bg]=Достъп до интернет +Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন +Comment[ca]=Accedeix a Internet +Comment[cs]=Přístup k internetu +Comment[da]=Få adgang til internettet +Comment[de]=Internetzugriff +Comment[el]=Πρόσβαση στο Διαδίκτυο +Comment[en_GB]=Access the Internet +Comment[es]=Accede a Internet. +Comment[et]=Pääs Internetti +Comment[fi]=Käytä internetiä +Comment[fil]=I-access ang Internet +Comment[fr]=Accéder à Internet +Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો +Comment[he]=גישה אל האינטרנט +Comment[hi]=इंटरनेट तक पहुंच स्थापित करें +Comment[hr]=Pristup Internetu +Comment[hu]=Internetelérés +Comment[id]=Akses Internet +Comment[it]=Accesso a Internet +Comment[ja]=インターネットにアクセス +Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ +Comment[ko]=인터넷 연결 +Comment[lt]=Interneto prieiga +Comment[lv]=Piekļūt internetam +Comment[ml]=ഇന്റര്നെറ്റ് ആക്സസ് ചെയ്യുക +Comment[mr]=इंटरनेटमध्ये प्रवेश करा +Comment[nb]=Gå til Internett +Comment[nl]=Verbinding maken met internet +Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ +Comment[pl]=Skorzystaj z internetu +Comment[pt]=Aceder à Internet +Comment[pt_BR]=Acessar a internet +Comment[ro]=Accesaţi Internetul +Comment[ru]=Доступ в Интернет +Comment[sk]=Prístup do siete Internet +Comment[sl]=Dostop do interneta +Comment[sr]=Приступите Интернету +Comment[sv]=Gå ut på Internet +Comment[ta]=இணையத்தை அணுகுதல் +Comment[te]=ఇంటర్నెట్ను ఆక్సెస్ చెయ్యండి +Comment[th]=เข้าถึงอินเทอร์เน็ต +Comment[tr]=İnternet'e erişin +Comment[uk]=Доступ до Інтернету +Comment[vi]=Truy cập Internet +Comment[zh_CN]=访问互联网 +Comment[zh_HK]=連線到網際網路 +Comment[zh_TW]=連線到網際網路 +Exec=chromium %U +Terminal=false +Icon=chromium +Type=Application +Categories=GTK;Network;WebBrowser; +MimeType=text/html;text/xml;application/xhtml+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https; Deleted: extra-i686/chromium.install =================================================================== --- extra-i686/chromium.install 2017-06-27 04:55:18 UTC (rev 299282) +++ extra-i686/chromium.install 2017-06-27 04:56:23 UTC (rev 299283) @@ -1,16 +0,0 @@ -post_upgrade() { - if (($(vercmp $2 42.0.2311.90-1) < 0)); then - echo ':: This Chromium package no longer supports custom flags passed via the' - echo ' /etc/chromium/default file (or any other files under /etc/chromium/).' - echo - echo ' The new /usr/bin/chromium launcher script will automatically detect' - echo ' Pepper Flash (if installed) and pass the correct flags to Chromium.' - echo - echo ' If you need to pass extra command-line arguments to Chromium, you' - echo ' can put them in a "chromium-flags.conf" file under $HOME/.config/' - echo ' (or $XDG_CONFIG_HOME). Arguments are split on whitespace and shell' - echo ' quoting rules apply but no further parsing is performed.' - fi -} - -# vim:set ts=2 sw=2 et: Copied: chromium/repos/extra-i686/chromium.install (from rev 299282, chromium/trunk/chromium.install) =================================================================== --- extra-i686/chromium.install (rev 0) +++ extra-i686/chromium.install 2017-06-27 04:56:23 UTC (rev 299283) @@ -0,0 +1,16 @@ +post_upgrade() { + if (($(vercmp $2 42.0.2311.90-1) < 0)); then + echo ':: This Chromium package no longer supports custom flags passed via the' + echo ' /etc/chromium/default file (or any other files under /etc/chromium/).' + echo + echo ' The new /usr/bin/chromium launcher script will automatically detect' + echo ' Pepper Flash (if installed) and pass the correct flags to Chromium.' + echo + echo ' If you need to pass extra command-line arguments to Chromium, you' + echo ' can put them in a "chromium-flags.conf" file under $HOME/.config/' + echo ' (or $XDG_CONFIG_HOME). Arguments are split on whitespace and shell' + echo ' quoting rules apply but no further parsing is performed.' + fi +} + +# vim:set ts=2 sw=2 et: Deleted: extra-x86_64/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch =================================================================== --- extra-x86_64/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch 2017-06-27 04:55:18 UTC (rev 299282) +++ extra-x86_64/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch 2017-06-27 04:56:23 UTC (rev 299283) @@ -1,118 +0,0 @@ -From 27bab2297187099229a1e4304d8feb866c8da55a Mon Sep 17 00:00:00 2001 -From: "dongseong.hwang" <dongseong.hw...@intel.com> -Date: Tue, 18 Apr 2017 16:44:55 -0700 -Subject: [PATCH] ClientNativePixmapFactoryDmabuf uses ioctl, instead of - drmIoctl. - -DMA_BUF_SYNC ioctl is not drmIoctl, because it uses dma-buf fd, instead of drm -device fd. - -In addition, remove LOCAL_ prefix to fix build failure >= kernel 4.6 - -Actually, ChromeOS doesn't need this local DMA_BUF_SYNC definition as all -verion of kernel for cros has dma-buf.h header. -https://chromium-review.googlesource.com/c/459544/ -However, there is not any way to distinguish real ChromeOS build and -current_os="chromeos" build, so remain the local definition to ChromeOS as -well. - -BUG=584248 -R=reve...@chromium.org - -Review-Url: https://codereview.chromium.org/2805503003 -Cr-Commit-Position: refs/heads/master@{#465425} ---- - ui/gfx/linux/client_native_pixmap_dmabuf.cc | 49 +++++++++++++---------------- - 1 file changed, 21 insertions(+), 28 deletions(-) - -diff --git a/ui/gfx/linux/client_native_pixmap_dmabuf.cc b/ui/gfx/linux/client_native_pixmap_dmabuf.cc -index d656c338f0a6..1bb441dc25ce 100644 ---- a/ui/gfx/linux/client_native_pixmap_dmabuf.cc -+++ b/ui/gfx/linux/client_native_pixmap_dmabuf.cc -@@ -7,36 +7,35 @@ - #include <fcntl.h> - #include <linux/version.h> - #include <stddef.h> -+#include <sys/ioctl.h> - #include <sys/mman.h> - #include <xf86drm.h> - - #include "base/debug/crash_logging.h" - #include "base/memory/ptr_util.h" -+#include "base/posix/eintr_wrapper.h" - #include "base/process/memory.h" - #include "base/process/process_metrics.h" - #include "base/strings/stringprintf.h" - #include "base/trace_event/trace_event.h" - --#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0) -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0) -+#include <linux/dma-buf.h> -+#else - #include <linux/types.h> - --struct local_dma_buf_sync { -+struct dma_buf_sync { - __u64 flags; - }; - --#define LOCAL_DMA_BUF_SYNC_READ (1 << 0) --#define LOCAL_DMA_BUF_SYNC_WRITE (2 << 0) --#define LOCAL_DMA_BUF_SYNC_RW \ -- (LOCAL_DMA_BUF_SYNC_READ | LOCAL_DMA_BUF_SYNC_WRITE) --#define LOCAL_DMA_BUF_SYNC_START (0 << 2) --#define LOCAL_DMA_BUF_SYNC_END (1 << 2) -+#define DMA_BUF_SYNC_READ (1 << 0) -+#define DMA_BUF_SYNC_WRITE (2 << 0) -+#define DMA_BUF_SYNC_RW (DMA_BUF_SYNC_READ | DMA_BUF_SYNC_WRITE) -+#define DMA_BUF_SYNC_START (0 << 2) -+#define DMA_BUF_SYNC_END (1 << 2) - --#define LOCAL_DMA_BUF_BASE 'b' --#define LOCAL_DMA_BUF_IOCTL_SYNC \ -- _IOW(LOCAL_DMA_BUF_BASE, 0, struct local_dma_buf_sync) -- --#else --#include <linux/dma-buf.h> -+#define DMA_BUF_BASE 'b' -+#define DMA_BUF_IOCTL_SYNC _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync) - #endif - - namespace gfx { -@@ -44,25 +43,19 @@ namespace gfx { - namespace { - - void PrimeSyncStart(int dmabuf_fd) { -- struct local_dma_buf_sync sync_start = {0}; -+ struct dma_buf_sync sync_start = {0}; - -- sync_start.flags = LOCAL_DMA_BUF_SYNC_START | LOCAL_DMA_BUF_SYNC_RW; --#if DCHECK_IS_ON() -- int rv = --#endif -- drmIoctl(dmabuf_fd, LOCAL_DMA_BUF_IOCTL_SYNC, &sync_start); -- DPLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_START"; -+ sync_start.flags = DMA_BUF_SYNC_START | DMA_BUF_SYNC_RW; -+ int rv = HANDLE_EINTR(ioctl(dmabuf_fd, DMA_BUF_IOCTL_SYNC, &sync_start)); -+ PLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_START"; - } - - void PrimeSyncEnd(int dmabuf_fd) { -- struct local_dma_buf_sync sync_end = {0}; -+ struct dma_buf_sync sync_end = {0}; - -- sync_end.flags = LOCAL_DMA_BUF_SYNC_END | LOCAL_DMA_BUF_SYNC_RW; --#if DCHECK_IS_ON() -- int rv = --#endif -- drmIoctl(dmabuf_fd, LOCAL_DMA_BUF_IOCTL_SYNC, &sync_end); -- DPLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_END"; -+ sync_end.flags = DMA_BUF_SYNC_END | DMA_BUF_SYNC_RW; -+ int rv = HANDLE_EINTR(ioctl(dmabuf_fd, DMA_BUF_IOCTL_SYNC, &sync_end)); -+ PLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_END"; - } - - } // namespace --- -2.13.0 - Copied: chromium/repos/extra-x86_64/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch (from rev 299282, chromium/trunk/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch) =================================================================== --- extra-x86_64/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch (rev 0) +++ extra-x86_64/0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch 2017-06-27 04:56:23 UTC (rev 299283) @@ -0,0 +1,118 @@ +From 27bab2297187099229a1e4304d8feb866c8da55a Mon Sep 17 00:00:00 2001 +From: "dongseong.hwang" <dongseong.hw...@intel.com> +Date: Tue, 18 Apr 2017 16:44:55 -0700 +Subject: [PATCH] ClientNativePixmapFactoryDmabuf uses ioctl, instead of + drmIoctl. + +DMA_BUF_SYNC ioctl is not drmIoctl, because it uses dma-buf fd, instead of drm +device fd. + +In addition, remove LOCAL_ prefix to fix build failure >= kernel 4.6 + +Actually, ChromeOS doesn't need this local DMA_BUF_SYNC definition as all +verion of kernel for cros has dma-buf.h header. +https://chromium-review.googlesource.com/c/459544/ +However, there is not any way to distinguish real ChromeOS build and +current_os="chromeos" build, so remain the local definition to ChromeOS as +well. + +BUG=584248 +R=reve...@chromium.org + +Review-Url: https://codereview.chromium.org/2805503003 +Cr-Commit-Position: refs/heads/master@{#465425} +--- + ui/gfx/linux/client_native_pixmap_dmabuf.cc | 49 +++++++++++++---------------- + 1 file changed, 21 insertions(+), 28 deletions(-) + +diff --git a/ui/gfx/linux/client_native_pixmap_dmabuf.cc b/ui/gfx/linux/client_native_pixmap_dmabuf.cc +index d656c338f0a6..1bb441dc25ce 100644 +--- a/ui/gfx/linux/client_native_pixmap_dmabuf.cc ++++ b/ui/gfx/linux/client_native_pixmap_dmabuf.cc +@@ -7,36 +7,35 @@ + #include <fcntl.h> + #include <linux/version.h> + #include <stddef.h> ++#include <sys/ioctl.h> + #include <sys/mman.h> + #include <xf86drm.h> + + #include "base/debug/crash_logging.h" + #include "base/memory/ptr_util.h" ++#include "base/posix/eintr_wrapper.h" + #include "base/process/memory.h" + #include "base/process/process_metrics.h" + #include "base/strings/stringprintf.h" + #include "base/trace_event/trace_event.h" + +-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0) ++#include <linux/dma-buf.h> ++#else + #include <linux/types.h> + +-struct local_dma_buf_sync { ++struct dma_buf_sync { + __u64 flags; + }; + +-#define LOCAL_DMA_BUF_SYNC_READ (1 << 0) +-#define LOCAL_DMA_BUF_SYNC_WRITE (2 << 0) +-#define LOCAL_DMA_BUF_SYNC_RW \ +- (LOCAL_DMA_BUF_SYNC_READ | LOCAL_DMA_BUF_SYNC_WRITE) +-#define LOCAL_DMA_BUF_SYNC_START (0 << 2) +-#define LOCAL_DMA_BUF_SYNC_END (1 << 2) ++#define DMA_BUF_SYNC_READ (1 << 0) ++#define DMA_BUF_SYNC_WRITE (2 << 0) ++#define DMA_BUF_SYNC_RW (DMA_BUF_SYNC_READ | DMA_BUF_SYNC_WRITE) ++#define DMA_BUF_SYNC_START (0 << 2) ++#define DMA_BUF_SYNC_END (1 << 2) + +-#define LOCAL_DMA_BUF_BASE 'b' +-#define LOCAL_DMA_BUF_IOCTL_SYNC \ +- _IOW(LOCAL_DMA_BUF_BASE, 0, struct local_dma_buf_sync) +- +-#else +-#include <linux/dma-buf.h> ++#define DMA_BUF_BASE 'b' ++#define DMA_BUF_IOCTL_SYNC _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync) + #endif + + namespace gfx { +@@ -44,25 +43,19 @@ namespace gfx { + namespace { + + void PrimeSyncStart(int dmabuf_fd) { +- struct local_dma_buf_sync sync_start = {0}; ++ struct dma_buf_sync sync_start = {0}; + +- sync_start.flags = LOCAL_DMA_BUF_SYNC_START | LOCAL_DMA_BUF_SYNC_RW; +-#if DCHECK_IS_ON() +- int rv = +-#endif +- drmIoctl(dmabuf_fd, LOCAL_DMA_BUF_IOCTL_SYNC, &sync_start); +- DPLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_START"; ++ sync_start.flags = DMA_BUF_SYNC_START | DMA_BUF_SYNC_RW; ++ int rv = HANDLE_EINTR(ioctl(dmabuf_fd, DMA_BUF_IOCTL_SYNC, &sync_start)); ++ PLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_START"; + } + + void PrimeSyncEnd(int dmabuf_fd) { +- struct local_dma_buf_sync sync_end = {0}; ++ struct dma_buf_sync sync_end = {0}; + +- sync_end.flags = LOCAL_DMA_BUF_SYNC_END | LOCAL_DMA_BUF_SYNC_RW; +-#if DCHECK_IS_ON() +- int rv = +-#endif +- drmIoctl(dmabuf_fd, LOCAL_DMA_BUF_IOCTL_SYNC, &sync_end); +- DPLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_END"; ++ sync_end.flags = DMA_BUF_SYNC_END | DMA_BUF_SYNC_RW; ++ int rv = HANDLE_EINTR(ioctl(dmabuf_fd, DMA_BUF_IOCTL_SYNC, &sync_end)); ++ PLOG_IF(ERROR, rv) << "Failed DMA_BUF_SYNC_END"; + } + + } // namespace +-- +2.13.0 + Copied: chromium/repos/extra-x86_64/0001-Clip-FreeType-glyph-bitmap-to-mask.patch (from rev 299282, chromium/trunk/0001-Clip-FreeType-glyph-bitmap-to-mask.patch) =================================================================== --- extra-x86_64/0001-Clip-FreeType-glyph-bitmap-to-mask.patch (rev 0) +++ extra-x86_64/0001-Clip-FreeType-glyph-bitmap-to-mask.patch 2017-06-27 04:56:23 UTC (rev 299283) @@ -0,0 +1,170 @@ +From 6cdb5f2ad7684302a8a66217462d2aef4c5f4632 Mon Sep 17 00:00:00 2001 +From: Ben Wagner <bunge...@behemoth.cnc.corp.google.com> +Date: Thu, 15 Jun 2017 10:43:17 -0400 +Subject: [PATCH] Clip FreeType glyph bitmap to mask. + +Skia has for some time assumed that when using FT_Render_Glyph with one +of the LCD render modes that one extra pixel would be applied to each +side of the resulting bitmap. FreieType has changed to make this more +conservative when possible, so the pre-allocated SkMask and the generated +FT_Bitmap may no longer agree on the size and origin. + +This change ensures the SkMask and FT_Bitmap are the same size and their +origins align. This is not an ideal long term fix, but is both simple and +localized for easy and quick back-porting, should that become necessary. + +BUG=skia:6663 + +Change-Id: I49ec8f45376be8d867e8aef54eab79537731c310 +Reviewed-on: https://skia-review.googlesource.com/20327 +Reviewed-by: Herb Derby <h...@google.com> +Commit-Queue: Ben Wagner <bunge...@google.com> +--- + src/ports/SkFontHost_FreeType_common.cpp | 100 +++++++++++++++++++++++++------ + 1 file changed, 83 insertions(+), 17 deletions(-) + +diff --git a/src/ports/SkFontHost_FreeType_common.cpp b/src/ports/SkFontHost_FreeType_common.cpp +index 9df7268bb4..a216fdb29c 100644 +--- a/src/ports/SkFontHost_FreeType_common.cpp ++++ b/src/ports/SkFontHost_FreeType_common.cpp +@@ -395,8 +395,6 @@ void SkScalerContext_FreeType_Base::generateGlyphImage( + 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) { +@@ -405,36 +403,97 @@ void SkScalerContext_FreeType_Base::generateGlyphImage( + // 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_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) { + SK_TRACEFTR(err, "Could not render glyph."); +- sk_bzero(glyph.fImage, glyph.computeImageSize()); + return; + } ++ + SkMask mask; + glyph.toMask(&mask); ++#ifdef SK_SHOW_TEXT_BLIT_COVERAGE ++ memset(mask.fImage, 0x80, mask.fBounds.height() * mask.fRowBytes); ++#endif ++ 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(); +@@ -442,8 +501,15 @@ void SkScalerContext_FreeType_Base::generateGlyphImage( + 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); ++#ifdef SK_SHOW_TEXT_BLIT_COVERAGE ++ for (int y = 0; y < glyph.fHeight; ++y) { ++ for (int x = 0; x < glyph.fWidth; ++x) { ++ uint8_t& a = ((uint8_t*)glyph.fImage)[(glyph.rowBytes() * y) + x]; ++ a = SkTMax<uint8_t>(a, 0x20); ++ } ++ } ++#endif + } + } break; + +-- +2.13.2 + Deleted: extra-x86_64/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch =================================================================== --- extra-x86_64/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch 2017-06-27 04:55:18 UTC (rev 299282) +++ extra-x86_64/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch 2017-06-27 04:56:23 UTC (rev 299283) @@ -1,35 +0,0 @@ -From 63901da067e069e298595618e01c4758c7896ff5 Mon Sep 17 00:00:00 2001 -From: thomasanderson <thomasander...@google.com> -Date: Fri, 28 Apr 2017 11:56:12 -0700 -Subject: [PATCH] Fix kernel version condition for including dma-buf.h - -Kernel 4.11 merges the commit that added linux/dma-buf.h -https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ef96152e6a36e0510387cb174178b7982c1ae879 - -This CL increases the required kernel to include this file to 4.11. - -BUG=707604 -R=dan...@chromium.org - -Review-Url: https://codereview.chromium.org/2851803002 -Cr-Commit-Position: refs/heads/master@{#468078} ---- - ui/gfx/linux/client_native_pixmap_dmabuf.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/ui/gfx/linux/client_native_pixmap_dmabuf.cc b/ui/gfx/linux/client_native_pixmap_dmabuf.cc -index 31ff4f4395b6..4927daf3a61d 100644 ---- a/ui/gfx/linux/client_native_pixmap_dmabuf.cc -+++ b/ui/gfx/linux/client_native_pixmap_dmabuf.cc -@@ -19,7 +19,7 @@ - #include "base/strings/stringprintf.h" - #include "base/trace_event/trace_event.h" - --#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0) -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) - #include <linux/dma-buf.h> - #else - #include <linux/types.h> --- -2.13.0 - Copied: chromium/repos/extra-x86_64/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch (from rev 299282, chromium/trunk/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch) =================================================================== --- extra-x86_64/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch (rev 0) +++ extra-x86_64/0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch 2017-06-27 04:56:23 UTC (rev 299283) @@ -0,0 +1,35 @@ +From 63901da067e069e298595618e01c4758c7896ff5 Mon Sep 17 00:00:00 2001 +From: thomasanderson <thomasander...@google.com> +Date: Fri, 28 Apr 2017 11:56:12 -0700 +Subject: [PATCH] Fix kernel version condition for including dma-buf.h + +Kernel 4.11 merges the commit that added linux/dma-buf.h +https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ef96152e6a36e0510387cb174178b7982c1ae879 + +This CL increases the required kernel to include this file to 4.11. + +BUG=707604 +R=dan...@chromium.org + +Review-Url: https://codereview.chromium.org/2851803002 +Cr-Commit-Position: refs/heads/master@{#468078} +--- + ui/gfx/linux/client_native_pixmap_dmabuf.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ui/gfx/linux/client_native_pixmap_dmabuf.cc b/ui/gfx/linux/client_native_pixmap_dmabuf.cc +index 31ff4f4395b6..4927daf3a61d 100644 +--- a/ui/gfx/linux/client_native_pixmap_dmabuf.cc ++++ b/ui/gfx/linux/client_native_pixmap_dmabuf.cc +@@ -19,7 +19,7 @@ + #include "base/strings/stringprintf.h" + #include "base/trace_event/trace_event.h" + +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) + #include <linux/dma-buf.h> + #else + #include <linux/types.h> +-- +2.13.0 + Deleted: extra-x86_64/PKGBUILD =================================================================== --- extra-x86_64/PKGBUILD 2017-06-27 04:55:18 UTC (rev 299282) +++ extra-x86_64/PKGBUILD 2017-06-27 04:56:23 UTC (rev 299283) @@ -1,200 +0,0 @@ -# $Id: PKGBUILD 277477 2016-10-01 03:36:40Z foutrelis $ -# Maintainer: Evangelos Foutras <evange...@foutrelis.com> -# Contributor: Pierre Schmitz <pie...@archlinux.de> -# Contributor: Jan "heftig" Steffens <jan.steff...@gmail.com> -# Contributor: Daniel J Griffiths <ghost1...@archlinux.us> - -# Possible replacements are listed in build/linux/unbundle/replace_gn_files.py -# Keys are the names in the above script; values are the dependencies in Arch -declare -rgA _system_libs=( - #[ffmpeg]=ffmpeg # https://crbug.com/731766 - [flac]=flac - [harfbuzz-ng]=harfbuzz-icu - #[icu]=icu # Enable again when upstream supports ICU 59 - [libdrm]= - [libjpeg]=libjpeg - [libpng]=libpng - #[libvpx]=libvpx # https://bugs.gentoo.org/show_bug.cgi?id=611394 - [libwebp]=libwebp - [libxml]=libxml2 - [libxslt]=libxslt - [re2]=re2 - [snappy]=snappy - [yasm]= - [zlib]=minizip -) - -pkgname=chromium -pkgver=59.0.3071.109 -pkgrel=1 -_launcher_ver=5 -pkgdesc="A web browser built for speed, simplicity, and security" -arch=('i686' 'x86_64') -url="https://www.chromium.org/Home" -license=('BSD') -depends=('gtk3' 'nss' 'alsa-lib' 'xdg-utils' 'libxss' 'libcups' 'libgcrypt' - 'ttf-font' 'systemd' 'dbus' 'libpulse' 'pciutils' 'desktop-file-utils' - 'hicolor-icon-theme') -depends+=(${_system_libs[@]}) -makedepends=('python2' 'gperf' 'yasm' 'mesa' 'ninja' 'nodejs' 'git') -optdepends=('kdialog: needed for file dialogs in KDE' - 'gnome-keyring: for storing passwords in GNOME keyring' - 'kwallet: for storing passwords in KWallet') -install=chromium.install -source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.xz - chromium-launcher-$_launcher_ver.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz - chromium.desktop - chromium-system-ffmpeg-r6.patch - 0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch - 0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch - chromium-blink-gcc7.patch - chromium-v8-gcc7.patch - chromium-widevine.patch) -sha256sums=('83faeb3537428d83728258b28e907caaee6e6572bcd7d9b9a5f6009e7ea758d9' - '4dc3428f2c927955d9ae117f2fb24d098cc6dd67adb760ac9c82b522ec8b0587' - '028a748a5c275de9b8f776f97909f999a8583a4b77fd1cd600b4fc5c0c3e91e9' - '2fc21f48b95f9f2c2bd8576742fcf8028a8877c6b6e96c04d88184915982234e' - '9c081c84a4f85dbef82a9edf34cf0b1e8377c563874fd9c1b4efddf1476748f9' - '42eb6ada30d5d507f2bda2d2caece37e397e7086bc0d430db776fad143562fb6' - 'f94310a7ba9b8b777adfb4442bcc0a8f0a3d549b2cf4a156066f8e2e28e2f323' - '46dacc4fa52652b7d99b8996d6a97e5e3bac586f879aefb9fb95020d2c4e5aec' - 'd6fdcb922e5a7fbe15759d39ccc8ea4225821c44d98054ce0f23f9d1f00c9808') - -# 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 -# get your own set of keys. Feel free to contact foutre...@archlinux.org for -# more information. -_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM -_google_default_client_id=413772536636.apps.googleusercontent.com -_google_default_client_secret=0ZChLK6AxeA3Isu96MkwqDR4 - -prepare() { - cd "$srcdir/$pkgname-$pkgver" - - # Enable support for the Widevine CDM plugin - # libwidevinecdm.so is not included, but can be copied over from Chrome - # (Version string doesn't seem to matter so let's go with "Pinkie Pie") - sed "s/@WIDEVINE_VERSION@/Pinkie Pie/" ../chromium-widevine.patch | - patch -Np1 - - # https://bugs.chromium.org/p/chromium/issues/detail?id=707604 - patch -Np1 -i ../0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch - patch -Np1 -i ../0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch - - # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=853347 - patch -Np1 -i ../chromium-blink-gcc7.patch - - # https://bugs.chromium.org/p/chromium/issues/detail?id=614289 - patch -Np1 -i ../chromium-v8-gcc7.patch - - # Fixes from Gentoo - patch -Np1 -i ../chromium-system-ffmpeg-r6.patch - - # Use Python 2 - find . -name '*.py' -exec sed -i -r 's|/usr/bin/python$|&2|g' {} + - - # There are still a lot of relative calls which need a workaround - mkdir -p "$srcdir/python2-path" - ln -sf /usr/bin/python2 "$srcdir/python2-path/python" - - mkdir -p third_party/node/linux/node-linux-x64/bin - ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/ - - # Remove bundled libraries for which we will use the system copies; this - # *should* do what the remove_bundled_libraries.py script does, with the - # added benefit of not having to list all the remaining libraries - local _lib - for _lib in ${!_system_libs[@]} ${_system_libs[libjpeg]+libjpeg_turbo}; do - find -type f -path "*third_party/$_lib/*" \ - \! -path "*third_party/$_lib/chromium/*" \ - \! -path "*third_party/$_lib/google/*" \ - \! -path "*base/third_party/icu/*" \ - \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \ - -delete - done - - python2 build/linux/unbundle/replace_gn_files.py \ - --system-libraries "${!_system_libs[@]}" -} - -build() { - make -C chromium-launcher-$_launcher_ver - - cd "$srcdir/$pkgname-$pkgver" - - export PATH="$srcdir/python2-path:$PATH" - export TMPDIR="$srcdir/temp" - mkdir -p "$TMPDIR" - - local _flags=( - 'is_clang=false' - 'clang_use_chrome_plugins=false' - 'is_debug=false' - 'fatal_linker_warnings=false' - 'treat_warnings_as_errors=false' - 'fieldtrial_testing_like_official_build=true' - 'remove_webcore_debug_symbols=true' - 'ffmpeg_branding="Chrome"' - 'proprietary_codecs=true' - 'link_pulseaudio=true' - 'linux_use_bundled_binutils=false' - 'use_gtk3=true' - 'use_gconf=false' - 'use_gnome_keyring=false' - 'use_gold=false' - 'use_sysroot=false' - 'enable_hangout_services_extension=true' - 'enable_widevine=true' - 'enable_nacl=false' - 'enable_swiftshader=false' - "google_api_key=\"${_google_api_key}\"" - "google_default_client_id=\"${_google_default_client_id}\"" - "google_default_client_secret=\"${_google_default_client_secret}\"" - ) - - python2 tools/gn/bootstrap/bootstrap.py --gn-gen-args "${_flags[*]}" - out/Release/gn gen out/Release --args="${_flags[*]}" \ - --script-executable=/usr/bin/python2 - - ninja -C out/Release chrome chrome_sandbox chromedriver widevinecdmadapter -} - -package() { - cd chromium-launcher-$_launcher_ver - make PREFIX=/usr DESTDIR="$pkgdir" install - install -Dm644 LICENSE \ - "$pkgdir/usr/share/licenses/chromium/LICENSE.launcher" - - cd "$srcdir/$pkgname-$pkgver" - - install -D out/Release/chrome "$pkgdir/usr/lib/chromium/chromium" - install -Dm644 out/Release/chrome.1 "$pkgdir/usr/share/man/man1/chromium.1" - install -Dm644 "$srcdir/chromium.desktop" \ - "$pkgdir/usr/share/applications/chromium.desktop" - - install -Dm4755 out/Release/chrome_sandbox \ - "$pkgdir/usr/lib/chromium/chrome-sandbox" - - cp -a \ - out/Release/{chrome_{100,200}_percent,resources}.pak \ - out/Release/{*.bin,chromedriver,libwidevinecdmadapter.so} \ - out/Release/locales \ - out/Release/icudtl.dat \ - "$pkgdir/usr/lib/chromium/" - - ln -s /usr/lib/chromium/chromedriver "$pkgdir/usr/bin/chromedriver" - - for size in 22 24 48 64 128 256; do - install -Dm644 "chrome/app/theme/chromium/product_logo_$size.png" \ - "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png" - done - - for size in 16 32; do - install -Dm644 "chrome/app/theme/default_100_percent/chromium/product_logo_$size.png" \ - "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png" - done - - install -Dm644 LICENSE "$pkgdir/usr/share/licenses/chromium/LICENSE" -} - -# vim:set ts=2 sw=2 et: Copied: chromium/repos/extra-x86_64/PKGBUILD (from rev 299282, chromium/trunk/PKGBUILD) =================================================================== --- extra-x86_64/PKGBUILD (rev 0) +++ extra-x86_64/PKGBUILD 2017-06-27 04:56:23 UTC (rev 299283) @@ -0,0 +1,211 @@ +# $Id: PKGBUILD 277477 2016-10-01 03:36:40Z foutrelis $ +# Maintainer: Evangelos Foutras <evange...@foutrelis.com> +# Contributor: Pierre Schmitz <pie...@archlinux.de> +# Contributor: Jan "heftig" Steffens <jan.steff...@gmail.com> +# Contributor: Daniel J Griffiths <ghost1...@archlinux.us> + +# Possible replacements are listed in build/linux/unbundle/replace_gn_files.py +# Keys are the names in the above script; values are the dependencies in Arch +declare -rgA _system_libs=( + #[ffmpeg]=ffmpeg # https://crbug.com/731766 + [flac]=flac + [harfbuzz-ng]=harfbuzz-icu + #[icu]=icu # Enable again when upstream supports ICU 59 + [libdrm]= + [libjpeg]=libjpeg + [libpng]=libpng + #[libvpx]=libvpx # https://bugs.gentoo.org/show_bug.cgi?id=611394 + [libwebp]=libwebp + [libxml]=libxml2 + [libxslt]=libxslt + [re2]=re2 + [snappy]=snappy + [yasm]= + [zlib]=minizip +) + +pkgname=chromium +pkgver=59.0.3071.115 +pkgrel=1 +_launcher_ver=5 +_freetype_rev=5a3490e054bda8a318ebde482 +pkgdesc="A web browser built for speed, simplicity, and security" +arch=('i686' 'x86_64') +url="https://www.chromium.org/Home" +license=('BSD') +depends=('gtk3' 'nss' 'alsa-lib' 'xdg-utils' 'libxss' 'libcups' 'libgcrypt' + 'ttf-font' 'systemd' 'dbus' 'libpulse' 'pciutils' 'desktop-file-utils' + 'hicolor-icon-theme') +depends+=(${_system_libs[@]}) +makedepends=('python2' 'gperf' 'yasm' 'mesa' 'ninja' 'nodejs' 'git') +optdepends=('kdialog: needed for file dialogs in KDE' + 'gnome-keyring: for storing passwords in GNOME keyring' + 'kwallet: for storing passwords in KWallet') +install=chromium.install +source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.xz + chromium-launcher-$_launcher_ver.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz + chromium-freetype2::git+https://chromium.googlesource.com/chromium/src/third_party/freetype2#commit=$_freetype_rev + chromium.desktop + chromium-system-ffmpeg-r6.patch + 0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch + 0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch + 0001-Clip-FreeType-glyph-bitmap-to-mask.patch + chromium-blink-gcc7.patch + chromium-v8-gcc7.patch + chromium-widevine.patch) +sha256sums=('37cbc9955ae3b25cd4e9851a82ea97a0035021cc90658902938ad1c20f263170' + '4dc3428f2c927955d9ae117f2fb24d098cc6dd67adb760ac9c82b522ec8b0587' + 'SKIP' + '028a748a5c275de9b8f776f97909f999a8583a4b77fd1cd600b4fc5c0c3e91e9' + '2fc21f48b95f9f2c2bd8576742fcf8028a8877c6b6e96c04d88184915982234e' + '9c081c84a4f85dbef82a9edf34cf0b1e8377c563874fd9c1b4efddf1476748f9' + '42eb6ada30d5d507f2bda2d2caece37e397e7086bc0d430db776fad143562fb6' + 'e60aa0ff01f8bee67e45fde7bbe932901194984673ec4b10ea82bba1bace0cd7' + 'f94310a7ba9b8b777adfb4442bcc0a8f0a3d549b2cf4a156066f8e2e28e2f323' + '46dacc4fa52652b7d99b8996d6a97e5e3bac586f879aefb9fb95020d2c4e5aec' + 'd6fdcb922e5a7fbe15759d39ccc8ea4225821c44d98054ce0f23f9d1f00c9808') + +# 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 +# get your own set of keys. Feel free to contact foutre...@archlinux.org for +# more information. +_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM +_google_default_client_id=413772536636.apps.googleusercontent.com +_google_default_client_secret=0ZChLK6AxeA3Isu96MkwqDR4 + +prepare() { + cd "$srcdir/$pkgname-$pkgver" + + # https://groups.google.com/a/chromium.org/d/msg/chromium-packagers/wuInaKJkosg/kMfIV_7wDgAJ + mv "$srcdir/chromium-freetype2" third_party/freetype/src + + # Enable support for the Widevine CDM plugin + # libwidevinecdm.so is not included, but can be copied over from Chrome + # (Version string doesn't seem to matter so let's go with "Pinkie Pie") + sed "s/@WIDEVINE_VERSION@/Pinkie Pie/" ../chromium-widevine.patch | + patch -Np1 + + # https://bugs.chromium.org/p/chromium/issues/detail?id=707604 + patch -Np1 -i ../0001-ClientNativePixmapFactoryDmabuf-uses-ioctl-instead-o.patch + patch -Np1 -i ../0001-Fix-kernel-version-condition-for-including-dma-buf.h.patch + + # https://bugs.chromium.org/p/skia/issues/detail?id=6663 + patch -Np1 -d third_party/skia <../0001-Clip-FreeType-glyph-bitmap-to-mask.patch + + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=853347 + patch -Np1 -i ../chromium-blink-gcc7.patch + + # https://bugs.chromium.org/p/chromium/issues/detail?id=614289 + patch -Np1 -i ../chromium-v8-gcc7.patch + + # Fixes from Gentoo + patch -Np1 -i ../chromium-system-ffmpeg-r6.patch + + # Use Python 2 + find . -name '*.py' -exec sed -i -r 's|/usr/bin/python$|&2|g' {} + + + # There are still a lot of relative calls which need a workaround + mkdir -p "$srcdir/python2-path" + ln -sf /usr/bin/python2 "$srcdir/python2-path/python" + + mkdir -p third_party/node/linux/node-linux-x64/bin + ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/ + + # Remove bundled libraries for which we will use the system copies; this + # *should* do what the remove_bundled_libraries.py script does, with the + # added benefit of not having to list all the remaining libraries + local _lib + for _lib in ${!_system_libs[@]} ${_system_libs[libjpeg]+libjpeg_turbo}; do + find -type f -path "*third_party/$_lib/*" \ + \! -path "*third_party/$_lib/chromium/*" \ + \! -path "*third_party/$_lib/google/*" \ + \! -path "*base/third_party/icu/*" \ + \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \ + -delete + done + + python2 build/linux/unbundle/replace_gn_files.py \ + --system-libraries "${!_system_libs[@]}" +} + +build() { + make -C chromium-launcher-$_launcher_ver + + cd "$srcdir/$pkgname-$pkgver" + + export PATH="$srcdir/python2-path:$PATH" + export TMPDIR="$srcdir/temp" + mkdir -p "$TMPDIR" + + local _flags=( + 'is_clang=false' + 'clang_use_chrome_plugins=false' + 'is_debug=false' + 'fatal_linker_warnings=false' + 'treat_warnings_as_errors=false' + 'fieldtrial_testing_like_official_build=true' + 'remove_webcore_debug_symbols=true' + 'ffmpeg_branding="Chrome"' + 'proprietary_codecs=true' + 'link_pulseaudio=true' + 'linux_use_bundled_binutils=false' + 'use_gtk3=true' + 'use_gconf=false' + 'use_gnome_keyring=false' + 'use_gold=false' + 'use_sysroot=false' + 'enable_hangout_services_extension=true' + 'enable_widevine=true' + 'enable_nacl=false' + 'enable_swiftshader=false' + "google_api_key=\"${_google_api_key}\"" + "google_default_client_id=\"${_google_default_client_id}\"" + "google_default_client_secret=\"${_google_default_client_secret}\"" + ) + + python2 tools/gn/bootstrap/bootstrap.py --gn-gen-args "${_flags[*]}" + out/Release/gn gen out/Release --args="${_flags[*]}" \ + --script-executable=/usr/bin/python2 + + ninja -C out/Release chrome chrome_sandbox chromedriver widevinecdmadapter +} + +package() { + cd chromium-launcher-$_launcher_ver + make PREFIX=/usr DESTDIR="$pkgdir" install + install -Dm644 LICENSE \ + "$pkgdir/usr/share/licenses/chromium/LICENSE.launcher" + + cd "$srcdir/$pkgname-$pkgver" + + install -D out/Release/chrome "$pkgdir/usr/lib/chromium/chromium" + install -Dm644 out/Release/chrome.1 "$pkgdir/usr/share/man/man1/chromium.1" + install -Dm644 "$srcdir/chromium.desktop" \ + "$pkgdir/usr/share/applications/chromium.desktop" + + install -Dm4755 out/Release/chrome_sandbox \ + "$pkgdir/usr/lib/chromium/chrome-sandbox" + + cp -a \ + out/Release/{chrome_{100,200}_percent,resources}.pak \ + out/Release/{*.bin,chromedriver,libwidevinecdmadapter.so} \ + out/Release/locales \ + out/Release/icudtl.dat \ + "$pkgdir/usr/lib/chromium/" + + ln -s /usr/lib/chromium/chromedriver "$pkgdir/usr/bin/chromedriver" + + for size in 22 24 48 64 128 256; do + install -Dm644 "chrome/app/theme/chromium/product_logo_$size.png" \ + "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png" + done + + for size in 16 32; do + install -Dm644 "chrome/app/theme/default_100_percent/chromium/product_logo_$size.png" \ + "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png" + done + + install -Dm644 LICENSE "$pkgdir/usr/share/licenses/chromium/LICENSE" +} + +# vim:set ts=2 sw=2 et: Deleted: extra-x86_64/chromium-blink-gcc7.patch =================================================================== --- extra-x86_64/chromium-blink-gcc7.patch 2017-06-27 04:55:18 UTC (rev 299282) +++ extra-x86_64/chromium-blink-gcc7.patch 2017-06-27 04:56:23 UTC (rev 299283) @@ -1,76 +0,0 @@ ---- chromium-59.0.3071.86/third_party/WebKit/Source/platform/wtf/LinkedHashSet.h.orig 2017-06-06 15:05:38.145247996 +0300 -+++ chromium-59.0.3071.86/third_party/WebKit/Source/platform/wtf/LinkedHashSet.h 2017-06-06 15:06:13.866246667 +0300 -@@ -685,6 +685,31 @@ inline LinkedHashSet<T, U, V, W>& Linked - return *this; - } - -+inline void SwapAnchor(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) { -+ DCHECK(a.prev_); -+ DCHECK(a.next_); -+ DCHECK(b.prev_); -+ DCHECK(b.next_); -+ swap(a.prev_, b.prev_); -+ swap(a.next_, b.next_); -+ if (b.next_ == &a) { -+ DCHECK_EQ(b.prev_, &a); -+ b.next_ = &b; -+ b.prev_ = &b; -+ } else { -+ b.next_->prev_ = &b; -+ b.prev_->next_ = &b; -+ } -+ if (a.next_ == &b) { -+ DCHECK_EQ(a.prev_, &b); -+ a.next_ = &a; -+ a.prev_ = &a; -+ } else { -+ a.next_->prev_ = &a; -+ a.prev_->next_ = &a; -+ } -+} -+ - template <typename T, typename U, typename V, typename W> - inline void LinkedHashSet<T, U, V, W>::Swap(LinkedHashSet& other) { - impl_.Swap(other.impl_); -@@ -877,31 +902,6 @@ inline void LinkedHashSet<T, U, V, W>::e - erase(Find(value)); - } - --inline void SwapAnchor(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) { -- DCHECK(a.prev_); -- DCHECK(a.next_); -- DCHECK(b.prev_); -- DCHECK(b.next_); -- swap(a.prev_, b.prev_); -- swap(a.next_, b.next_); -- if (b.next_ == &a) { -- DCHECK_EQ(b.prev_, &a); -- b.next_ = &b; -- b.prev_ = &b; -- } else { -- b.next_->prev_ = &b; -- b.prev_->next_ = &b; -- } -- if (a.next_ == &b) { -- DCHECK_EQ(a.prev_, &b); -- a.next_ = &a; -- a.prev_ = &a; -- } else { -- a.next_->prev_ = &a; -- a.prev_->next_ = &a; -- } --} -- - inline void swap(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) { - DCHECK_NE(a.next_, &a); - DCHECK_NE(b.next_, &b); ---- chromium-59.0.3071.86/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.orig 2017-06-06 16:16:43.657661313 +0300 -+++ chromium-59.0.3071.86/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h 2017-06-06 16:16:50.911198032 +0300 -@@ -5,6 +5,7 @@ - #include "platform/PlatformExport.h" - #include "platform/wtf/ThreadSpecific.h" - -+#include <functional> - #include <memory> - - namespace gpu { Copied: chromium/repos/extra-x86_64/chromium-blink-gcc7.patch (from rev 299282, chromium/trunk/chromium-blink-gcc7.patch) =================================================================== --- extra-x86_64/chromium-blink-gcc7.patch (rev 0) +++ extra-x86_64/chromium-blink-gcc7.patch 2017-06-27 04:56:23 UTC (rev 299283) @@ -0,0 +1,76 @@ +--- chromium-59.0.3071.86/third_party/WebKit/Source/platform/wtf/LinkedHashSet.h.orig 2017-06-06 15:05:38.145247996 +0300 ++++ chromium-59.0.3071.86/third_party/WebKit/Source/platform/wtf/LinkedHashSet.h 2017-06-06 15:06:13.866246667 +0300 +@@ -685,6 +685,31 @@ inline LinkedHashSet<T, U, V, W>& Linked + return *this; + } + ++inline void SwapAnchor(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) { ++ DCHECK(a.prev_); ++ DCHECK(a.next_); ++ DCHECK(b.prev_); ++ DCHECK(b.next_); ++ swap(a.prev_, b.prev_); ++ swap(a.next_, b.next_); ++ if (b.next_ == &a) { ++ DCHECK_EQ(b.prev_, &a); ++ b.next_ = &b; ++ b.prev_ = &b; ++ } else { ++ b.next_->prev_ = &b; ++ b.prev_->next_ = &b; ++ } ++ if (a.next_ == &b) { ++ DCHECK_EQ(a.prev_, &b); ++ a.next_ = &a; ++ a.prev_ = &a; ++ } else { ++ a.next_->prev_ = &a; ++ a.prev_->next_ = &a; ++ } ++} ++ + template <typename T, typename U, typename V, typename W> + inline void LinkedHashSet<T, U, V, W>::Swap(LinkedHashSet& other) { + impl_.Swap(other.impl_); +@@ -877,31 +902,6 @@ inline void LinkedHashSet<T, U, V, W>::e + erase(Find(value)); + } + +-inline void SwapAnchor(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) { +- DCHECK(a.prev_); +- DCHECK(a.next_); +- DCHECK(b.prev_); +- DCHECK(b.next_); +- swap(a.prev_, b.prev_); +- swap(a.next_, b.next_); +- if (b.next_ == &a) { +- DCHECK_EQ(b.prev_, &a); +- b.next_ = &b; +- b.prev_ = &b; +- } else { +- b.next_->prev_ = &b; +- b.prev_->next_ = &b; +- } +- if (a.next_ == &b) { +- DCHECK_EQ(a.prev_, &b); +- a.next_ = &a; +- a.prev_ = &a; +- } else { +- a.next_->prev_ = &a; +- a.prev_->next_ = &a; +- } +-} +- + inline void swap(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b) { + DCHECK_NE(a.next_, &a); + DCHECK_NE(b.next_, &b); +--- chromium-59.0.3071.86/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.orig 2017-06-06 16:16:43.657661313 +0300 ++++ chromium-59.0.3071.86/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h 2017-06-06 16:16:50.911198032 +0300 +@@ -5,6 +5,7 @@ + #include "platform/PlatformExport.h" + #include "platform/wtf/ThreadSpecific.h" + ++#include <functional> + #include <memory> + + namespace gpu { Deleted: extra-x86_64/chromium-system-ffmpeg-r6.patch =================================================================== --- extra-x86_64/chromium-system-ffmpeg-r6.patch 2017-06-27 04:55:18 UTC (rev 299282) +++ extra-x86_64/chromium-system-ffmpeg-r6.patch 2017-06-27 04:56:23 UTC (rev 299283) @@ -1,43 +0,0 @@ ---- a/media/ffmpeg/ffmpeg_common.h.orig 2017-04-07 18:17:22.623538889 +0000 -+++ b/media/ffmpeg/ffmpeg_common.h 2017-04-07 18:18:16.780656283 +0000 -@@ -23,10 +23,12 @@ - - // Include FFmpeg header files. - extern "C" { -+#if !defined(USE_SYSTEM_FFMPEG) - // Disable deprecated features which result in spammy compile warnings. This - // list of defines must mirror those in the 'defines' section of FFmpeg's - // BUILD.gn file or the headers below will generate different structures! - #define FF_API_CONVERGENCE_DURATION 0 -+#endif // !defined(USE_SYSTEM_FFMPEG) - // Upstream libavcodec/utils.c still uses the deprecated - // av_dup_packet(), causing deprecation warnings. - // The normal fix for such things is to disable the feature as below, -@@ -40,7 +42,9 @@ - MSVC_PUSH_DISABLE_WARNING(4244); - #include <libavcodec/avcodec.h> - #include <libavformat/avformat.h> -+#if !defined(USE_SYSTEM_FFMPEG) - #include <libavformat/internal.h> -+#endif // !defined(USE_SYSTEM_FFMPEG) - #include <libavformat/avio.h> - #include <libavutil/avutil.h> - #include <libavutil/imgutils.h> ---- a/media/filters/ffmpeg_demuxer.cc.orig 2017-04-07 18:15:14.776901183 +0000 -+++ b/media/filters/ffmpeg_demuxer.cc 2017-04-07 18:15:54.813727201 +0000 -@@ -1223,6 +1223,7 @@ - // If no estimate is found, the stream entry will be kInfiniteDuration. - std::vector<base::TimeDelta> start_time_estimates(format_context->nb_streams, - kInfiniteDuration); -+#if !defined(USE_SYSTEM_FFMPEG) - const AVFormatInternal* internal = format_context->internal; - if (internal && internal->packet_buffer && - format_context->start_time != static_cast<int64_t>(AV_NOPTS_VALUE)) { -@@ -1246,6 +1247,7 @@ - packet_buffer = packet_buffer->next; - } - } -+#endif // !defined(USE_SYSTEM_FFMPEG) - - std::unique_ptr<MediaTracks> media_tracks(new MediaTracks()); - Copied: chromium/repos/extra-x86_64/chromium-system-ffmpeg-r6.patch (from rev 299282, chromium/trunk/chromium-system-ffmpeg-r6.patch) =================================================================== --- extra-x86_64/chromium-system-ffmpeg-r6.patch (rev 0) +++ extra-x86_64/chromium-system-ffmpeg-r6.patch 2017-06-27 04:56:23 UTC (rev 299283) @@ -0,0 +1,43 @@ +--- a/media/ffmpeg/ffmpeg_common.h.orig 2017-04-07 18:17:22.623538889 +0000 ++++ b/media/ffmpeg/ffmpeg_common.h 2017-04-07 18:18:16.780656283 +0000 +@@ -23,10 +23,12 @@ + + // Include FFmpeg header files. + extern "C" { ++#if !defined(USE_SYSTEM_FFMPEG) + // Disable deprecated features which result in spammy compile warnings. This + // list of defines must mirror those in the 'defines' section of FFmpeg's + // BUILD.gn file or the headers below will generate different structures! + #define FF_API_CONVERGENCE_DURATION 0 ++#endif // !defined(USE_SYSTEM_FFMPEG) + // Upstream libavcodec/utils.c still uses the deprecated + // av_dup_packet(), causing deprecation warnings. + // The normal fix for such things is to disable the feature as below, +@@ -40,7 +42,9 @@ + MSVC_PUSH_DISABLE_WARNING(4244); + #include <libavcodec/avcodec.h> + #include <libavformat/avformat.h> ++#if !defined(USE_SYSTEM_FFMPEG) + #include <libavformat/internal.h> ++#endif // !defined(USE_SYSTEM_FFMPEG) + #include <libavformat/avio.h> + #include <libavutil/avutil.h> + #include <libavutil/imgutils.h> +--- a/media/filters/ffmpeg_demuxer.cc.orig 2017-04-07 18:15:14.776901183 +0000 ++++ b/media/filters/ffmpeg_demuxer.cc 2017-04-07 18:15:54.813727201 +0000 +@@ -1223,6 +1223,7 @@ + // If no estimate is found, the stream entry will be kInfiniteDuration. + std::vector<base::TimeDelta> start_time_estimates(format_context->nb_streams, + kInfiniteDuration); ++#if !defined(USE_SYSTEM_FFMPEG) + const AVFormatInternal* internal = format_context->internal; + if (internal && internal->packet_buffer && + format_context->start_time != static_cast<int64_t>(AV_NOPTS_VALUE)) { +@@ -1246,6 +1247,7 @@ + packet_buffer = packet_buffer->next; + } + } ++#endif // !defined(USE_SYSTEM_FFMPEG) + + std::unique_ptr<MediaTracks> media_tracks(new MediaTracks()); + Deleted: extra-x86_64/chromium-v8-gcc7.patch =================================================================== --- extra-x86_64/chromium-v8-gcc7.patch 2017-06-27 04:55:18 UTC (rev 299282) +++ extra-x86_64/chromium-v8-gcc7.patch 2017-06-27 04:56:23 UTC (rev 299283) @@ -1,73 +0,0 @@ -diff -upr chromium-59.0.3071.86.orig/v8/src/objects/hash-table.h chromium-59.0.3071.86/v8/src/objects/hash-table.h ---- chromium-59.0.3071.86.orig/v8/src/objects/hash-table.h 2017-06-05 22:04:29.000000000 +0300 -+++ chromium-59.0.3071.86/v8/src/objects/hash-table.h 2017-06-06 14:35:41.558245559 +0300 -@@ -135,22 +135,10 @@ class HashTable : public HashTableBase { - public: - typedef Shape ShapeT; - -- // Wrapper methods -- inline uint32_t Hash(Key key) { -- if (Shape::UsesSeed) { -- return Shape::SeededHash(key, GetHeap()->HashSeed()); -- } else { -- return Shape::Hash(key); -- } -- } -- -- inline uint32_t HashForObject(Key key, Object* object) { -- if (Shape::UsesSeed) { -- return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object); -- } else { -- return Shape::HashForObject(key, object); -- } -- } -+ // Wrapper methods. Defined in src/objects-inl.h -+ // to break a cycle with src/heap/heap.h. -+ inline uint32_t Hash(Key key); -+ inline uint32_t HashForObject(Key key, Object* object); - - // Returns a new HashTable object. - MUST_USE_RESULT static Handle<Derived> New( -diff -upr chromium-59.0.3071.86.orig/v8/src/objects-body-descriptors.h chromium-59.0.3071.86/v8/src/objects-body-descriptors.h ---- chromium-59.0.3071.86.orig/v8/src/objects-body-descriptors.h 2017-06-05 22:04:29.000000000 +0300 -+++ chromium-59.0.3071.86/v8/src/objects-body-descriptors.h 2017-06-06 14:35:41.554912132 +0300 -@@ -99,7 +99,7 @@ class FixedBodyDescriptor final : public - - template <typename StaticVisitor> - static inline void IterateBody(HeapObject* obj, int object_size) { -- IterateBody(obj); -+ IterateBody<StaticVisitor>(obj); - } - }; - -diff -upr chromium-59.0.3071.86.orig/v8/src/objects-inl.h chromium-59.0.3071.86/v8/src/objects-inl.h ---- chromium-59.0.3071.86.orig/v8/src/objects-inl.h 2017-06-05 22:04:29.000000000 +0300 -+++ chromium-59.0.3071.86/v8/src/objects-inl.h 2017-06-06 14:35:41.558245559 +0300 -@@ -46,6 +46,27 @@ - namespace v8 { - namespace internal { - -+template <typename Derived, typename Shape, typename Key> -+uint32_t HashTable<Derived, Shape, Key>::Hash(Key key) { -+ if (Shape::UsesSeed) { -+ return Shape::SeededHash(key, GetHeap()->HashSeed()); -+ } else { -+ return Shape::Hash(key); -+ } -+} -+ -+ -+template <typename Derived, typename Shape, typename Key> -+uint32_t HashTable<Derived, Shape, Key>::HashForObject(Key key, -+ Object* object) { -+ if (Shape::UsesSeed) { -+ return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object); -+ } else { -+ return Shape::HashForObject(key, object); -+ } -+} -+ -+ - PropertyDetails::PropertyDetails(Smi* smi) { - value_ = smi->value(); - } Copied: chromium/repos/extra-x86_64/chromium-v8-gcc7.patch (from rev 299282, chromium/trunk/chromium-v8-gcc7.patch) =================================================================== --- extra-x86_64/chromium-v8-gcc7.patch (rev 0) +++ extra-x86_64/chromium-v8-gcc7.patch 2017-06-27 04:56:23 UTC (rev 299283) @@ -0,0 +1,73 @@ +diff -upr chromium-59.0.3071.86.orig/v8/src/objects/hash-table.h chromium-59.0.3071.86/v8/src/objects/hash-table.h +--- chromium-59.0.3071.86.orig/v8/src/objects/hash-table.h 2017-06-05 22:04:29.000000000 +0300 ++++ chromium-59.0.3071.86/v8/src/objects/hash-table.h 2017-06-06 14:35:41.558245559 +0300 +@@ -135,22 +135,10 @@ class HashTable : public HashTableBase { + public: + typedef Shape ShapeT; + +- // Wrapper methods +- inline uint32_t Hash(Key key) { +- if (Shape::UsesSeed) { +- return Shape::SeededHash(key, GetHeap()->HashSeed()); +- } else { +- return Shape::Hash(key); +- } +- } +- +- inline uint32_t HashForObject(Key key, Object* object) { +- if (Shape::UsesSeed) { +- return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object); +- } else { +- return Shape::HashForObject(key, object); +- } +- } ++ // Wrapper methods. Defined in src/objects-inl.h ++ // to break a cycle with src/heap/heap.h. ++ inline uint32_t Hash(Key key); ++ inline uint32_t HashForObject(Key key, Object* object); + + // Returns a new HashTable object. + MUST_USE_RESULT static Handle<Derived> New( +diff -upr chromium-59.0.3071.86.orig/v8/src/objects-body-descriptors.h chromium-59.0.3071.86/v8/src/objects-body-descriptors.h +--- chromium-59.0.3071.86.orig/v8/src/objects-body-descriptors.h 2017-06-05 22:04:29.000000000 +0300 ++++ chromium-59.0.3071.86/v8/src/objects-body-descriptors.h 2017-06-06 14:35:41.554912132 +0300 +@@ -99,7 +99,7 @@ class FixedBodyDescriptor final : public + + template <typename StaticVisitor> + static inline void IterateBody(HeapObject* obj, int object_size) { +- IterateBody(obj); ++ IterateBody<StaticVisitor>(obj); + } + }; + +diff -upr chromium-59.0.3071.86.orig/v8/src/objects-inl.h chromium-59.0.3071.86/v8/src/objects-inl.h +--- chromium-59.0.3071.86.orig/v8/src/objects-inl.h 2017-06-05 22:04:29.000000000 +0300 ++++ chromium-59.0.3071.86/v8/src/objects-inl.h 2017-06-06 14:35:41.558245559 +0300 +@@ -46,6 +46,27 @@ + namespace v8 { + namespace internal { + ++template <typename Derived, typename Shape, typename Key> ++uint32_t HashTable<Derived, Shape, Key>::Hash(Key key) { ++ if (Shape::UsesSeed) { ++ return Shape::SeededHash(key, GetHeap()->HashSeed()); ++ } else { ++ return Shape::Hash(key); ++ } ++} ++ ++ ++template <typename Derived, typename Shape, typename Key> ++uint32_t HashTable<Derived, Shape, Key>::HashForObject(Key key, ++ Object* object) { ++ if (Shape::UsesSeed) { ++ return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object); ++ } else { ++ return Shape::HashForObject(key, object); ++ } ++} ++ ++ + PropertyDetails::PropertyDetails(Smi* smi) { + value_ = smi->value(); + } Deleted: extra-x86_64/chromium-widevine.patch =================================================================== --- extra-x86_64/chromium-widevine.patch 2017-06-27 04:55:18 UTC (rev 299282) +++ extra-x86_64/chromium-widevine.patch 2017-06-27 04:56:23 UTC (rev 299283) @@ -1,10 +0,0 @@ -diff -upr chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_version.h chromium-48.0.2564.82/third_party/widevine/cdm/stub/widevine_cdm_version.h ---- chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_version.h 2016-01-14 01:05:17.000000000 +0200 -+++ chromium-48.0.2564.82/third_party/widevine/cdm/stub/widevine_cdm_version.h 2016-01-21 19:18:51.287978456 +0200 -@@ -12,4 +12,6 @@ - - #define WIDEVINE_CDM_AVAILABLE - -+#define WIDEVINE_CDM_VERSION_STRING "@WIDEVINE_VERSION@" -+ - #endif // WIDEVINE_CDM_VERSION_H_ Copied: chromium/repos/extra-x86_64/chromium-widevine.patch (from rev 299282, chromium/trunk/chromium-widevine.patch) =================================================================== --- extra-x86_64/chromium-widevine.patch (rev 0) +++ extra-x86_64/chromium-widevine.patch 2017-06-27 04:56:23 UTC (rev 299283) @@ -0,0 +1,10 @@ +diff -upr chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_version.h chromium-48.0.2564.82/third_party/widevine/cdm/stub/widevine_cdm_version.h +--- chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_version.h 2016-01-14 01:05:17.000000000 +0200 ++++ chromium-48.0.2564.82/third_party/widevine/cdm/stub/widevine_cdm_version.h 2016-01-21 19:18:51.287978456 +0200 +@@ -12,4 +12,6 @@ + + #define WIDEVINE_CDM_AVAILABLE + ++#define WIDEVINE_CDM_VERSION_STRING "@WIDEVINE_VERSION@" ++ + #endif // WIDEVINE_CDM_VERSION_H_ Deleted: extra-x86_64/chromium.desktop =================================================================== --- extra-x86_64/chromium.desktop 2017-06-27 04:55:18 UTC (rev 299282) +++ extra-x86_64/chromium.desktop 2017-06-27 04:56:23 UTC (rev 299283) @@ -1,112 +0,0 @@ -[Desktop Entry] -Name=Chromium -# Only KDE 4 seems to use GenericName, so we reuse the KDE strings. -# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413. -GenericName=Web Browser -GenericName[ar]=متصفح الشبكة -GenericName[bg]=Уеб браузър -GenericName[ca]=Navegador web -GenericName[cs]=WWW prohlížeč -GenericName[da]=Browser -GenericName[de]=Web-Browser -GenericName[el]=Περιηγητής ιστού -GenericName[en_GB]=Web Browser -GenericName[es]=Navegador web -GenericName[et]=Veebibrauser -GenericName[fi]=WWW-selain -GenericName[fr]=Navigateur Web -GenericName[gu]=વેબ બ્રાઉઝર -GenericName[he]=דפדפן אינטרנט -GenericName[hi]=वेब ब्राउज़र -GenericName[hu]=Webböngésző -GenericName[it]=Browser Web -GenericName[ja]=ウェブブラウザ -GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ -GenericName[ko]=웹 브라우저 -GenericName[lt]=Žiniatinklio naršyklė -GenericName[lv]=Tīmekļa pārlūks -GenericName[ml]=വെബ് ബ്രൌസര് -GenericName[mr]=वेब ब्राऊजर -GenericName[nb]=Nettleser -GenericName[nl]=Webbrowser -GenericName[pl]=Przeglądarka WWW -GenericName[pt]=Navegador Web -GenericName[pt_BR]=Navegador da Internet -GenericName[ro]=Navigator de Internet -GenericName[ru]=Веб-браузер -GenericName[sl]=Spletni brskalnik -GenericName[sv]=Webbläsare -GenericName[ta]=இணைய உலாவி -GenericName[th]=เว็บเบราว์เซอร์ -GenericName[tr]=Web Tarayıcı -GenericName[uk]=Навігатор Тенет -GenericName[zh_CN]=网页浏览器 -GenericName[zh_HK]=網頁瀏覽器 -GenericName[zh_TW]=網頁瀏覽器 -# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1. -GenericName[bn]=ওয়েব ব্রাউজার -GenericName[fil]=Web Browser -GenericName[hr]=Web preglednik -GenericName[id]=Browser Web -GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର -GenericName[sk]=WWW prehliadač -GenericName[sr]=Интернет прегледник -GenericName[te]=మహాతల అన్వేషి -GenericName[vi]=Bộ duyệt Web -# Gnome and KDE 3 uses Comment. -Comment=Access the Internet -Comment[ar]=الدخول إلى الإنترنت -Comment[bg]=Достъп до интернет -Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন -Comment[ca]=Accedeix a Internet -Comment[cs]=Přístup k internetu -Comment[da]=Få adgang til internettet -Comment[de]=Internetzugriff -Comment[el]=Πρόσβαση στο Διαδίκτυο -Comment[en_GB]=Access the Internet -Comment[es]=Accede a Internet. -Comment[et]=Pääs Internetti -Comment[fi]=Käytä internetiä -Comment[fil]=I-access ang Internet -Comment[fr]=Accéder à Internet -Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો -Comment[he]=גישה אל האינטרנט -Comment[hi]=इंटरनेट तक पहुंच स्थापित करें -Comment[hr]=Pristup Internetu -Comment[hu]=Internetelérés -Comment[id]=Akses Internet -Comment[it]=Accesso a Internet -Comment[ja]=インターネットにアクセス -Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ -Comment[ko]=인터넷 연결 -Comment[lt]=Interneto prieiga -Comment[lv]=Piekļūt internetam -Comment[ml]=ഇന്റര്നെറ്റ് ആക്സസ് ചെയ്യുക -Comment[mr]=इंटरनेटमध्ये प्रवेश करा -Comment[nb]=Gå til Internett -Comment[nl]=Verbinding maken met internet -Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ -Comment[pl]=Skorzystaj z internetu -Comment[pt]=Aceder à Internet -Comment[pt_BR]=Acessar a internet -Comment[ro]=Accesaţi Internetul -Comment[ru]=Доступ в Интернет -Comment[sk]=Prístup do siete Internet -Comment[sl]=Dostop do interneta -Comment[sr]=Приступите Интернету -Comment[sv]=Gå ut på Internet -Comment[ta]=இணையத்தை அணுகுதல் -Comment[te]=ఇంటర్నెట్ను ఆక్సెస్ చెయ్యండి -Comment[th]=เข้าถึงอินเทอร์เน็ต -Comment[tr]=İnternet'e erişin -Comment[uk]=Доступ до Інтернету -Comment[vi]=Truy cập Internet -Comment[zh_CN]=访问互联网 -Comment[zh_HK]=連線到網際網路 -Comment[zh_TW]=連線到網際網路 -Exec=chromium %U -Terminal=false -Icon=chromium -Type=Application -Categories=GTK;Network;WebBrowser; -MimeType=text/html;text/xml;application/xhtml+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https; Copied: chromium/repos/extra-x86_64/chromium.desktop (from rev 299282, chromium/trunk/chromium.desktop) =================================================================== --- extra-x86_64/chromium.desktop (rev 0) +++ extra-x86_64/chromium.desktop 2017-06-27 04:56:23 UTC (rev 299283) @@ -0,0 +1,112 @@ +[Desktop Entry] +Name=Chromium +# Only KDE 4 seems to use GenericName, so we reuse the KDE strings. +# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413. +GenericName=Web Browser +GenericName[ar]=متصفح الشبكة +GenericName[bg]=Уеб браузър +GenericName[ca]=Navegador web +GenericName[cs]=WWW prohlížeč +GenericName[da]=Browser +GenericName[de]=Web-Browser +GenericName[el]=Περιηγητής ιστού +GenericName[en_GB]=Web Browser +GenericName[es]=Navegador web +GenericName[et]=Veebibrauser +GenericName[fi]=WWW-selain +GenericName[fr]=Navigateur Web +GenericName[gu]=વેબ બ્રાઉઝર +GenericName[he]=דפדפן אינטרנט +GenericName[hi]=वेब ब्राउज़र +GenericName[hu]=Webböngésző +GenericName[it]=Browser Web +GenericName[ja]=ウェブブラウザ +GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ +GenericName[ko]=웹 브라우저 +GenericName[lt]=Žiniatinklio naršyklė +GenericName[lv]=Tīmekļa pārlūks +GenericName[ml]=വെബ് ബ്രൌസര് +GenericName[mr]=वेब ब्राऊजर +GenericName[nb]=Nettleser +GenericName[nl]=Webbrowser +GenericName[pl]=Przeglądarka WWW +GenericName[pt]=Navegador Web +GenericName[pt_BR]=Navegador da Internet +GenericName[ro]=Navigator de Internet +GenericName[ru]=Веб-браузер +GenericName[sl]=Spletni brskalnik +GenericName[sv]=Webbläsare +GenericName[ta]=இணைய உலாவி +GenericName[th]=เว็บเบราว์เซอร์ +GenericName[tr]=Web Tarayıcı +GenericName[uk]=Навігатор Тенет +GenericName[zh_CN]=网页浏览器 +GenericName[zh_HK]=網頁瀏覽器 +GenericName[zh_TW]=網頁瀏覽器 +# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1. +GenericName[bn]=ওয়েব ব্রাউজার +GenericName[fil]=Web Browser +GenericName[hr]=Web preglednik +GenericName[id]=Browser Web +GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର +GenericName[sk]=WWW prehliadač +GenericName[sr]=Интернет прегледник +GenericName[te]=మహాతల అన్వేషి +GenericName[vi]=Bộ duyệt Web +# Gnome and KDE 3 uses Comment. +Comment=Access the Internet +Comment[ar]=الدخول إلى الإنترنت +Comment[bg]=Достъп до интернет +Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন +Comment[ca]=Accedeix a Internet +Comment[cs]=Přístup k internetu +Comment[da]=Få adgang til internettet +Comment[de]=Internetzugriff +Comment[el]=Πρόσβαση στο Διαδίκτυο +Comment[en_GB]=Access the Internet +Comment[es]=Accede a Internet. +Comment[et]=Pääs Internetti +Comment[fi]=Käytä internetiä +Comment[fil]=I-access ang Internet +Comment[fr]=Accéder à Internet +Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો +Comment[he]=גישה אל האינטרנט +Comment[hi]=इंटरनेट तक पहुंच स्थापित करें +Comment[hr]=Pristup Internetu +Comment[hu]=Internetelérés +Comment[id]=Akses Internet +Comment[it]=Accesso a Internet +Comment[ja]=インターネットにアクセス +Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ +Comment[ko]=인터넷 연결 +Comment[lt]=Interneto prieiga +Comment[lv]=Piekļūt internetam +Comment[ml]=ഇന്റര്നെറ്റ് ആക്സസ് ചെയ്യുക +Comment[mr]=इंटरनेटमध्ये प्रवेश करा +Comment[nb]=Gå til Internett +Comment[nl]=Verbinding maken met internet +Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ +Comment[pl]=Skorzystaj z internetu +Comment[pt]=Aceder à Internet +Comment[pt_BR]=Acessar a internet +Comment[ro]=Accesaţi Internetul +Comment[ru]=Доступ в Интернет +Comment[sk]=Prístup do siete Internet +Comment[sl]=Dostop do interneta +Comment[sr]=Приступите Интернету +Comment[sv]=Gå ut på Internet +Comment[ta]=இணையத்தை அணுகுதல் +Comment[te]=ఇంటర్నెట్ను ఆక్సెస్ చెయ్యండి +Comment[th]=เข้าถึงอินเทอร์เน็ต +Comment[tr]=İnternet'e erişin +Comment[uk]=Доступ до Інтернету +Comment[vi]=Truy cập Internet +Comment[zh_CN]=访问互联网 +Comment[zh_HK]=連線到網際網路 +Comment[zh_TW]=連線到網際網路 +Exec=chromium %U +Terminal=false +Icon=chromium +Type=Application +Categories=GTK;Network;WebBrowser; +MimeType=text/html;text/xml;application/xhtml+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https; Deleted: extra-x86_64/chromium.install =================================================================== --- extra-x86_64/chromium.install 2017-06-27 04:55:18 UTC (rev 299282) +++ extra-x86_64/chromium.install 2017-06-27 04:56:23 UTC (rev 299283) @@ -1,16 +0,0 @@ -post_upgrade() { - if (($(vercmp $2 42.0.2311.90-1) < 0)); then - echo ':: This Chromium package no longer supports custom flags passed via the' - echo ' /etc/chromium/default file (or any other files under /etc/chromium/).' - echo - echo ' The new /usr/bin/chromium launcher script will automatically detect' - echo ' Pepper Flash (if installed) and pass the correct flags to Chromium.' - echo - echo ' If you need to pass extra command-line arguments to Chromium, you' - echo ' can put them in a "chromium-flags.conf" file under $HOME/.config/' - echo ' (or $XDG_CONFIG_HOME). Arguments are split on whitespace and shell' - echo ' quoting rules apply but no further parsing is performed.' - fi -} - -# vim:set ts=2 sw=2 et: Copied: chromium/repos/extra-x86_64/chromium.install (from rev 299282, chromium/trunk/chromium.install) =================================================================== --- extra-x86_64/chromium.install (rev 0) +++ extra-x86_64/chromium.install 2017-06-27 04:56:23 UTC (rev 299283) @@ -0,0 +1,16 @@ +post_upgrade() { + if (($(vercmp $2 42.0.2311.90-1) < 0)); then + echo ':: This Chromium package no longer supports custom flags passed via the' + echo ' /etc/chromium/default file (or any other files under /etc/chromium/).' + echo + echo ' The new /usr/bin/chromium launcher script will automatically detect' + echo ' Pepper Flash (if installed) and pass the correct flags to Chromium.' + echo + echo ' If you need to pass extra command-line arguments to Chromium, you' + echo ' can put them in a "chromium-flags.conf" file under $HOME/.config/' + echo ' (or $XDG_CONFIG_HOME). Arguments are split on whitespace and shell' + echo ' quoting rules apply but no further parsing is performed.' + fi +} + +# vim:set ts=2 sw=2 et: