From a68f2e923097abf6613ce303f68a534b6cea99e3 Mon Sep 17 00:00:00 2001
From: Cecil <knoppmyth@gmail.com>
Date: Sun, 19 Feb 2012 02:53:41 -0800
Subject: chromium:Bumped to latest (17.0.963.56).

---
 abs/extra/community/chromium/PKGBUILD              | 97 ++++++++++++----------
 .../chromium/chromium-media-no-sse-r0.patch        | 17 ++++
 abs/extra/community/chromium/chromium.sh           |  0
 abs/extra/community/chromium/gcc-4.6.patch         | 13 +--
 abs/extra/community/chromium/glibc-2.14.patch      | 51 ------------
 .../make-hash-tools-use-if-instead-of-switch.patch | 37 ---------
 .../nacl-cflags-remove-fstack-protector.patch      | 17 ++++
 7 files changed, 88 insertions(+), 144 deletions(-)
 create mode 100644 abs/extra/community/chromium/chromium-media-no-sse-r0.patch
 mode change 100644 => 100755 abs/extra/community/chromium/chromium.sh
 delete mode 100644 abs/extra/community/chromium/glibc-2.14.patch
 delete mode 100644 abs/extra/community/chromium/make-hash-tools-use-if-instead-of-switch.patch
 create mode 100644 abs/extra/community/chromium/nacl-cflags-remove-fstack-protector.patch

diff --git a/abs/extra/community/chromium/PKGBUILD b/abs/extra/community/chromium/PKGBUILD
index e5518e9..df239af 100644
--- a/abs/extra/community/chromium/PKGBUILD
+++ b/abs/extra/community/chromium/PKGBUILD
@@ -1,54 +1,66 @@
-# $Id$
-# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
+# $Id: PKGBUILD 150259 2012-02-16 02:37:46Z foutrelis $
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
 # Contributor: Pierre Schmitz <pierre@archlinux.de>
 # Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
 # Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
 
+# Building for x86_64 requires lib32-glibc & lib32-zlib from [multilib]. These
+# libraries are linked from the NaCl toolchain, and are only needed during
+# build time.
+
 pkgname=chromium
-pkgver=13.0.782.112
-pkgrel=1
+pkgver=17.0.963.56
+pkgrel=2
 pkgdesc="The open-source project behind Google Chrome, an attempt at creating a safer, faster, and more stable browser"
 arch=('i686' 'x86_64')
 url="http://www.chromium.org/"
 license=('BSD')
 depends=('gtk2' 'dbus-glib' 'nss' 'alsa-lib' 'xdg-utils' 'bzip2' 'libevent'
-         'libxss' 'libxtst' 'ttf-dejavu' 'desktop-file-utils'
+         'libxss' 'libgcrypt' 'ttf-dejavu' 'desktop-file-utils'
          'hicolor-icon-theme')
-makedepends=('python2' 'perl' 'gperf' 'yasm' 'mesa' 'libgnome-keyring')
-optdepends=('mozplugger-chromium: A Mozilla multimedia plugin for Chromium')
+makedepends=('python2' 'perl' 'gperf' 'yasm' 'mesa' 'libgnome-keyring'
+             'elfutils')
+optdepends=('kdebase-kdialog: needed for file dialogs in KDE'
+            'mozplugger-chromium: A Mozilla multimedia plugin for Chromium')
+# Needed for the NaCl toolchain
+[[ $CARCH == x86_64 ]] && makedepends+=('lib32-zlib')
 provides=('chromium-browser')
 conflicts=('chromium-browser')
 replaces=('firefox' 'firefox-i18n' 'mozplugger')
 install=chromium.install
-source=(http://build.chromium.org/official/chromium-$pkgver.tar.bz2
+source=(http://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.bz2
+        http://commondatastorage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/nacl_sdk.zip
         chromium.desktop
         chromium.sh
         gcc-4.6.patch
-        glibc-2.14.patch
-        make-hash-tools-use-if-instead-of-switch.patch)
+        nacl-cflags-remove-fstack-protector.patch
+        chromium-media-no-sse-r0.patch)
+sha256sums=('270be138d499c6c2092644af69acab8310cb05c3d06c3afe7891e488c29b020f'
+            '964fe3a5ec56f2505649aba00f900abe4205674b7fdaa16772647d347173bb01'
+            '09bfac44104f4ccda4c228053f689c947b3e97da9a4ab6fa34ce061ee83d0322'
+            'c53bfc4db9dde684fbaed6a4bbecb207e3e7a0a2703233426fe076a6d3c557f3'
+            '9c5e0803904d1a0e71ab7444c92a7046a34a9518eeba7a70f2eec7abecb8bf4e'
+            '59e732880314333d6e9acf6ac99de467c98e8a92aa5c5292ae808a805e0f8d76'
+            '71751bf5913da1eec3c88c433044224c869b0abd5a29172cf239bddbb4eff761')
 
 build() {
   cd "$srcdir/chromium-$pkgver"
 
-  # Patches to fix gcc 4.6 compilation from
+  # Fix build with gcc 4.6
   # http://code.google.com/p/chromium/issues/detail?id=80071
-  # http://code.google.com/p/chromium/issues/detail?id=70746
-  # http://code.google.com/p/chromium/issues/detail?id=46411
   patch -Np0 -i "$srcdir/gcc-4.6.patch"
-  
-  # Fix build with glibc 2.14
-  # http://code.google.com/p/chromium/issues/detail?id=86646
-  patch -Np2 -i "$srcdir/glibc-2.14.patch"
 
-# Fix build with Perl 5.14
-  patch -d third_party/WebKit -Np2 -i \
-    "$srcdir/make-hash-tools-use-if-instead-of-switch.patch"
+  # Filter -fstack-protector out of cflags for nacl_helper_bootstrap
+  # http://code.google.com/p/chromium/issues/detail?id=104569
+  patch -d native_client -Np1 -i \
+    "$srcdir/nacl-cflags-remove-fstack-protector.patch"
 
-### Configure
+  # Remove unconditional use of SSE3 (patch from Gentoo)
+  patch -Np0 -i "$srcdir/chromium-media-no-sse-r0.patch"
 
   # Use Python 2
   find . -type f -exec sed -i -r \
-    -e 's|/usr/bin/python$|\02|g' \
+    -e 's|/usr/bin/python$|&2|g' \
     -e 's|(/usr/bin/python2)\.4$|\1|g' \
     {} +
   # There are still a lot of relative calls which need a workaround
@@ -56,12 +68,21 @@ build() {
   ln -s /usr/bin/python2 "$srcdir/python2-path/python"
   export PATH="$srcdir/python2-path:$PATH"
 
+  pushd "$srcdir/nacl_sdk"
+  ./naclsdk update pepper_16
+  popd
+
+  ln -s "$srcdir/nacl_sdk/pepper_16/toolchain/linux_x86_newlib" \
+    native_client/toolchain/linux_x86_newlib
+
   # We need to disable system_ssl until "next protocol negotiation" support is
   # available in our nss package.
   # (See https://bugzilla.mozilla.org/show_bug.cgi?id=547312)
 
+  # CFLAGS are passed through release_extra_cflags below
+  export -n CFLAGS CXXFLAGS
+
   build/gyp_chromium -f make build/all.gyp --depth=. \
-    -Dgcc_version=45 \
     -Dno_strict_aliasing=1 \
     -Dwerror= \
     -Dlinux_sandbox_path=/usr/lib/chromium/chromium-sandbox \
@@ -69,21 +90,18 @@ build() {
     -Drelease_extra_cflags="$CFLAGS" \
     -Dffmpeg_branding=Chrome \
     -Dproprietary_codecs=1 \
-    -Duse_system_libjpeg=1 \
-    -Duse_system_libxslt=0 \
-    -Duse_system_libxml=0 \
     -Duse_system_bzip2=1 \
-    -Duse_system_zlib=1 \
-    -Duse_system_libpng=1 \
     -Duse_system_ffmpeg=0 \
-    -Duse_system_yasm=1 \
     -Duse_system_libevent=1 \
+    -Duse_system_libjpeg=0 \
+    -Duse_system_libpng=1 \
+    -Duse_system_libxml=0 \
     -Duse_system_ssl=0 \
+    -Duse_system_yasm=1 \
+    -Duse_system_zlib=1 \
     -Duse_gconf=0 \
     $([[ $CARCH == i686 ]] && echo '-Ddisable_sse2=1')
 
-### Build
-
   make chrome chrome_sandbox BUILDTYPE=Release
 }
 
@@ -95,13 +113,10 @@ package() {
   install -Dm4755 -o root -g root out/Release/chrome_sandbox \
     "$pkgdir/usr/lib/chromium/chromium-sandbox"
 
-  install -Dm644 out/Release/chrome.pak "$pkgdir/usr/lib/chromium/chrome.pak"
-
-  install -Dm644 out/Release/resources.pak \
-    "$pkgdir/usr/lib/chromium/resources.pak"
-
-  install -D out/Release/libffmpegsumo.so \
-    "$pkgdir/usr/lib/chromium/libffmpegsumo.so"
+  cp out/Release/{{chrome,resources}.pak,libffmpegsumo.so} \
+    out/Release/nacl_helper{,_bootstrap} \
+    out/Release/{libppGoogleNaClPluginChrome.so,nacl_irt_x86_*.nexe} \
+    "$pkgdir/usr/lib/chromium/"
 
   # These links are only needed when building with system ffmpeg
   #ln -s /usr/lib/libavcodec.so.52 ${pkgdir}/usr/lib/chromium/
@@ -128,9 +143,3 @@ package() {
 }
 
 # vim:set ts=2 sw=2 et:
-md5sums=('a0ddccb65b0075419d089087a9de785c'
-         '075c3c2fa5902e16b8547dd31d437191'
-         '096a46ef386817988250d2d7bddd1b34'
-         '690f2be42bf2a31755753a466653eb33'
-         '543a32b09f138fd47858b9a4a7c82dfb'
-         '9d9e66c8365d7333e55305796b49fd77')
diff --git a/abs/extra/community/chromium/chromium-media-no-sse-r0.patch b/abs/extra/community/chromium/chromium-media-no-sse-r0.patch
new file mode 100644
index 0000000..07cda2d
--- /dev/null
+++ b/abs/extra/community/chromium/chromium-media-no-sse-r0.patch
@@ -0,0 +1,17 @@
+--- media/media.gyp.orig	2012-02-02 10:03:41.000000000 +0100
++++ media/media.gyp	2012-02-02 10:04:09.000000000 +0100
+@@ -467,14 +467,6 @@
+         [ 'os_posix == 1 and OS != "mac" and OS != "android"', {
+           'cflags': [
+             '-msse2',
+-            '-msse3',
+-            '-mssse3',
+-          ],
+-        }],
+-        [ 'OS == "openbsd"', {
+-          # OpenBSD's gcc (4.2.1) does not support -mssse3
+-          'cflags!': [
+-            '-mssse3',
+           ],
+         }],
+         [ 'OS == "mac"', {
diff --git a/abs/extra/community/chromium/chromium.sh b/abs/extra/community/chromium/chromium.sh
old mode 100644
new mode 100755
diff --git a/abs/extra/community/chromium/gcc-4.6.patch b/abs/extra/community/chromium/gcc-4.6.patch
index 220fe7a..b5e61dc 100644
--- a/abs/extra/community/chromium/gcc-4.6.patch
+++ b/abs/extra/community/chromium/gcc-4.6.patch
@@ -68,9 +68,9 @@ diff -u -r third_party/tcmalloc/chromium/src/common.cc third_party/tcmalloc/chro
 --- third_party/tcmalloc/chromium/src/common.cc	2011-04-13 13:23:04.000000000 +0400
 +++ third_party/tcmalloc/chromium/src/common.cc	2011-04-20 19:32:58.000000000 +0400
 @@ -34,6 +34,7 @@
- #include "system-alloc.h"
  #include "config.h"
  #include "common.h"
+ #include "system-alloc.h"
 +#include <cstddef>
  
  namespace tcmalloc {
@@ -86,17 +86,6 @@ diff -u -r third_party/tcmalloc/chromium/src/symbolize.h third_party/tcmalloc/ch
  
  using std::map;
  
-diff -u -r third_party/tcmalloc/chromium/src/system-alloc.h third_party/tcmalloc/chromium/src/system-alloc.h
---- third_party/tcmalloc/chromium/src/system-alloc.h	2011-04-13 13:23:04.000000000 +0400
-+++ third_party/tcmalloc/chromium/src/system-alloc.h	2011-04-20 19:32:58.000000000 +0400
-@@ -37,6 +37,7 @@
- #define TCMALLOC_SYSTEM_ALLOC_H_
- 
- #include <config.h>
-+#include <cstddef>
- #include "internal_logging.h"
- 
- // REQUIRES: "alignment" is a power of two or "0" to indicate default alignment
 diff -u -r ui/gfx/codec/jpeg_codec.h ui/gfx/codec/jpeg_codec.h
 --- ui/gfx/codec/jpeg_codec.h	2011-04-13 13:23:45.000000000 +0400
 +++ ui/gfx/codec/jpeg_codec.h	2011-04-20 19:32:58.000000000 +0400
diff --git a/abs/extra/community/chromium/glibc-2.14.patch b/abs/extra/community/chromium/glibc-2.14.patch
deleted file mode 100644
index 1bfbbee..0000000
--- a/abs/extra/community/chromium/glibc-2.14.patch
+++ /dev/null
@@ -1,51 +0,0 @@
---- trunk/src/third_party/tcmalloc/chromium/src/tcmalloc.cc	2011/06/21 07:36:46	89799
-+++ trunk/src/third_party/tcmalloc/chromium/src/tcmalloc.cc	2011/06/21 07:37:01	89800
-@@ -150,6 +150,13 @@
- # define WIN32_DO_PATCHING 1
- #endif
- 
-+// GLibc 2.14+ requires the hook functions be declared volatile, based on the
-+// value of the define __MALLOC_HOOK_VOLATILE. For compatibility with
-+// older/non-GLibc implementations, provide an empty definition.
-+#if !defined(__MALLOC_HOOK_VOLATILE)
-+#define __MALLOC_HOOK_VOLATILE
-+#endif
-+
- using std::max;
- using tcmalloc::PageHeap;
- using tcmalloc::SizeMap;
-@@ -403,7 +410,7 @@
-   return tc_malloc(size);
- }
- 
--void* (*__malloc_hook)(
-+void* (*__MALLOC_HOOK_VOLATILE __malloc_hook)(
-     size_t size, const void* caller) = tc_ptmalloc_malloc_hook;
- 
- static void* tc_ptmalloc_realloc_hook(
-@@ -411,14 +418,14 @@
-   return tc_realloc(ptr, size);
- }
- 
--void* (*__realloc_hook)(
-+void* (*__MALLOC_HOOK_VOLATILE __realloc_hook)(
-     void* ptr, size_t size, const void* caller) = tc_ptmalloc_realloc_hook;
- 
- static void tc_ptmalloc_free_hook(void* ptr, const void* caller) {
-   tc_free(ptr);
- }
- 
--void (*__free_hook)(void* ptr, const void* caller) = tc_ptmalloc_free_hook;
-+void (*__MALLOC_HOOK_VOLATILE __free_hook)(void* ptr, const void* caller) = tc_ptmalloc_free_hook;
- 
- #endif
- 
-@@ -1757,7 +1764,7 @@
-   MallocHook::InvokeNewHook(result, size);
-   return result;
- }
--void *(*__memalign_hook)(size_t, size_t, const void *) = MemalignOverride;
-+void *(*__MALLOC_HOOK_VOLATILE __memalign_hook)(size_t, size_t, const void *) = MemalignOverride;
- #endif  // #ifndef TCMALLOC_FOR_DEBUGALLOCATION
- 
- // ---Double free() debugging implementation -----------------------------------
diff --git a/abs/extra/community/chromium/make-hash-tools-use-if-instead-of-switch.patch b/abs/extra/community/chromium/make-hash-tools-use-if-instead-of-switch.patch
deleted file mode 100644
index 1b917ba..0000000
--- a/abs/extra/community/chromium/make-hash-tools-use-if-instead-of-switch.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-Index: /trunk/Source/WebCore/make-hash-tools.pl
-===================================================================
---- /trunk/Source/WebCore/make-hash-tools.pl	(revision 72664)
-+++ /trunk/Source/WebCore/make-hash-tools.pl	(revision 89265)
-@@ -21,5 +21,4 @@
- 
- use strict;
--use Switch;
- use File::Basename;
- 
-@@ -29,7 +28,5 @@
- 
- 
--switch ($option) {
--
--case "DocTypeStrings" {
-+if ($option eq "DocTypeStrings") {
- 
-     my $docTypeStringsGenerated    = "$outdir/DocTypeStrings.cpp";
-@@ -39,7 +36,5 @@
-     system("gperf --key-positions=\"*\" -s 2 $docTypeStringsGperf > $docTypeStringsGenerated") == 0 || die "calling gperf failed: $?";
- 
--} # case "DocTypeStrings"
--
--case "ColorData" {
-+} elsif ($option eq "ColorData") {
- 
-     my $colorDataGenerated         = "$outdir/ColorData.cpp";
-@@ -49,5 +44,5 @@
-     system("gperf --key-positions=\"*\" -D -s 2 $colorDataGperf > $colorDataGenerated") == 0 || die "calling gperf failed: $?";
- 
--} # case "ColorData"
--
--} # switch ($option)
-+} else {
-+    die "Unknown option.";
-+}
diff --git a/abs/extra/community/chromium/nacl-cflags-remove-fstack-protector.patch b/abs/extra/community/chromium/nacl-cflags-remove-fstack-protector.patch
new file mode 100644
index 0000000..0e4f7cf
--- /dev/null
+++ b/abs/extra/community/chromium/nacl-cflags-remove-fstack-protector.patch
@@ -0,0 +1,17 @@
+Index: src/trusted/service_runtime/linux/nacl_bootstrap.gyp
+diff --git a/src/trusted/service_runtime/linux/nacl_bootstrap.gyp b/src/trusted/service_runtime/linux/nacl_bootstrap.gyp
+index 66d95ca4dc98653219c965b899dbd5ad35d2960c..083e3fdd24ff4562d2037f8d17a06540e05357b8 100644
+--- a/src/trusted/service_runtime/linux/nacl_bootstrap.gyp
++++ b/src/trusted/service_runtime/linux/nacl_bootstrap.gyp
+@@ -84,6 +84,11 @@
+         '-fasan',
+         '-faddress-sanitizer',
+         '-w',
++        # We filter these out because release_extra_cflags or another
++        # such thing might be adding them in, and those options wind up
++        # coming after the -fno-stack-protector we added above.
++        '-fstack-protector',
++        '-fstack-protector-all',
+       ],
+       'conditions': [
+         ['clang==1', {
-- 
cgit v0.12