From 02256098c3e55b15d1a85359f93bf8cffe962ffd Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Tue, 12 Jul 2011 19:07:12 -0500
Subject: chromium:Bumped to latest

---
 abs/extra/community/chromium/PKGBUILD         | 121 +++++++++++---------
 abs/extra/community/chromium/chromium.desktop |   2 +-
 abs/extra/community/chromium/chromium.install |   7 +-
 abs/extra/community/chromium/gcc-4.6.patch    | 159 ++++++++++++++++++++++++++
 abs/extra/community/chromium/glibc-2.14.patch |  51 +++++++++
 5 files changed, 284 insertions(+), 56 deletions(-)
 create mode 100644 abs/extra/community/chromium/gcc-4.6.patch
 create mode 100644 abs/extra/community/chromium/glibc-2.14.patch

diff --git a/abs/extra/community/chromium/PKGBUILD b/abs/extra/community/chromium/PKGBUILD
index eba588c..013f1cc 100644
--- a/abs/extra/community/chromium/PKGBUILD
+++ b/abs/extra/community/chromium/PKGBUILD
@@ -1,42 +1,62 @@
-# $Id: PKGBUILD 109507 2011-02-10 15:37:06Z ibiru $
+# $Id$
+# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
 # Contributor: Pierre Schmitz <pierre@archlinux.de>
 # Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
-# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
 
 pkgname=chromium
-pkgver=9.0.597.94
-pkgrel=3
-pkgdesc='The open-source project behind Google Chrome, an attempt at creating a safer, faster, and more stable browser.'
+pkgver=12.0.742.112
+pkgrel=1
+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/'
+url="http://www.chromium.org/"
 license=('BSD')
-depends=('nss' 'gconf' 'alsa-lib' 'xdg-utils' 'hicolor-icon-theme' 'bzip2' 'libevent' 'libxss' 'libxtst' 'ttf-dejavu' 'libcups')
-makedepends=('python2' 'perl' 'gperf' 'yasm' 'mesa' 'libgnome-keyring' 'libcups')
+depends=('gtk2' 'dbus-glib' 'nss' 'alsa-lib' 'xdg-utils' 'bzip2' 'libevent'
+         'libxss' 'libxtst' 'ttf-dejavu' 'desktop-file-utils'
+         'hicolor-icon-theme')
+makedepends=('python2' 'perl' 'gperf' 'yasm' 'mesa' 'libgnome-keyring')
 provides=('chromium-browser')
 conflicts=('chromium-browser')
 install=chromium.install
-source=("http://build.chromium.org/buildbot/official/chromium-${pkgver}.tar.bz2"
-        'chromium.desktop' 'chromium.sh')
-md5sums=('41386b3df743575f2325c4c64d6d7bc7'
-         'c5e849fcb1101149977355c99d8ff78f'
-         '096a46ef386817988250d2d7bddd1b34')
+source=(http://build.chromium.org/official/chromium-$pkgver.tar.bz2
+        chromium.desktop
+        chromium.sh
+        gcc-4.6.patch
+        glibc-2.14.patch)
+md5sums=('8a5b7b4b30f5fe8de10fcf7d984321b8'
+         '075c3c2fa5902e16b8547dd31d437191'
+         '096a46ef386817988250d2d7bddd1b34'
+         '0ea28c80c49a0a4440786e05b5251678'
+         '543a32b09f138fd47858b9a4a7c82dfb')
 
 build() {
-  cd ${srcdir}/chromium-${pkgver}
+  cd "$srcdir/chromium-$pkgver"
+
+  # Patches to fix gcc 4.6 compilation from
+  # 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"
 
 ### Configure
 
-  echo 'Use python2 instead of python...'
-  find . -type f -exec \
-	sed -E 's#(/usr/bin/python)$#\12#g;s#(/usr/bin/python2)\.4$#\1#g' -i {} \;
+  # Use Python 2
+  find . -type f -exec sed -i -r \
+    -e 's|/usr/bin/python$|\02|g' \
+    -e 's|(/usr/bin/python2)\.4$|\1|g' \
+    {} +
   # There are still a lot of relative calls which need a workaround
-  mkdir ${srcdir}/python2-path
-  ln -s /usr/bin/python2 ${srcdir}/python2-path/python
-  export PATH="${srcdir}/python2-path/:${PATH}"
+  mkdir "$srcdir/python2-path"
+  ln -s /usr/bin/python2 "$srcdir/python2-path/python"
+  export PATH="$srcdir/python2-path:$PATH"
 
-  # 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
+  # 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)
 
   build/gyp_chromium -f make build/all.gyp --depth=. \
     -Dgcc_version=45 \
@@ -44,7 +64,7 @@ build() {
     -Dwerror= \
     -Dlinux_sandbox_path=/usr/lib/chromium/chromium-sandbox \
     -Dlinux_strip_binary=1 \
-    -Drelease_extra_cflags="${CFLAGS}" \
+    -Drelease_extra_cflags="$CFLAGS" \
     -Dffmpeg_branding=Chrome \
     -Dproprietary_codecs=1 \
     -Duse_system_libjpeg=1 \
@@ -57,7 +77,8 @@ build() {
     -Duse_system_yasm=1 \
     -Duse_system_libevent=1 \
     -Duse_system_ssl=0 \
-    $([ "${CARCH}" == 'i686' ] && echo '-Ddisable_sse2=1')
+    -Duse_gconf=0 \
+    $([[ $CARCH == i686 ]] && echo '-Ddisable_sse2=1')
 
 ### Build
 
@@ -65,47 +86,43 @@ build() {
 }
 
 package() {
-  cd ${srcdir}/chromium-${pkgver}
+  cd "$srcdir/chromium-$pkgver"
 
-  install -m 0755 -D out/Release/chrome ${pkgdir}/usr/lib/chromium/chromium
+  install -D out/Release/chrome ${pkgdir}/usr/lib/chromium/chromium
 
-  install -m 4555 -o root -g root -D out/Release/chrome_sandbox \
-    ${pkgdir}/usr/lib/chromium/chromium-sandbox
+  install -Dm4755 -o root -g root out/Release/chrome_sandbox \
+    "$pkgdir/usr/lib/chromium/chromium-sandbox"
 
-  install -m 0644 -D out/Release/chrome.pak \
-    ${pkgdir}/usr/lib/chromium/chrome.pak
+  install -Dm644 out/Release/chrome.pak "$pkgdir/usr/lib/chromium/chrome.pak"
 
-  install -m 0644 -D out/Release/resources.pak \
-    ${pkgdir}/usr/lib/chromium/resources.pak
+  install -Dm644 out/Release/resources.pak \
+    "$pkgdir/usr/lib/chromium/resources.pak"
 
-  install -m 0755 -D out/Release/libffmpegsumo.so \
-    ${pkgdir}/usr/lib/chromium/libffmpegsumo.so
+  install -D out/Release/libffmpegsumo.so \
+    "$pkgdir/usr/lib/chromium/libffmpegsumo.so"
 
-# these links are only needed when building with system ffmpeg
-#  ln -s /usr/lib/libavcodec.so.52 ${pkgdir}/usr/lib/chromium/
-#  ln -s /usr/lib/libavformat.so.52 ${pkgdir}/usr/lib/chromium/
-#  ln -s /usr/lib/libavutil.so.50 ${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/
+  #ln -s /usr/lib/libavformat.so.52 ${pkgdir}/usr/lib/chromium/
+  #ln -s /usr/lib/libavutil.so.50 ${pkgdir}/usr/lib/chromium/
 
-  cp -a out/Release/locales out/Release/resources \
-    ${pkgdir}/usr/lib/chromium/
+  cp -a out/Release/locales out/Release/resources "$pkgdir/usr/lib/chromium/"
 
-  find ${pkgdir}/usr/lib/chromium/ -name '*.d' -type f -delete
+  find "$pkgdir/usr/lib/chromium/" -name '*.d' -type f -delete
 
-  install -m 0644 -D out/Release/chrome.1 \
-    ${pkgdir}/usr/share/man/man1/chromium.1
+  install -Dm644 out/Release/chrome.1 "$pkgdir/usr/share/man/man1/chromium.1"
 
-  install -m 0644 -D ${srcdir}/chromium.desktop \
-    ${pkgdir}/usr/share/applications/chromium.desktop
+  install -Dm644 "$srcdir/chromium.desktop" \
+    "$pkgdir/usr/share/applications/chromium.desktop"
 
   for size in 16 22 24 32 48 64 128 256; do
-    install -m 0644 -D \
-      chrome/app/theme/chromium/product_logo_${size}.png \
-      ${pkgdir}/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png
+    install -Dm644 "chrome/app/theme/chromium/product_logo_$size.png" \
+      "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
   done
 
-  install -m 0755 -D ${srcdir}/chromium.sh ${pkgdir}/usr/bin/chromium
+  install -D "$srcdir/chromium.sh" "$pkgdir/usr/bin/chromium"
 
-  install -m 0644 -D LICENSE ${pkgdir}/usr/share/licenses/chromium/LICENSE
+  install -Dm644 LICENSE "$pkgdir/usr/share/licenses/chromium/LICENSE"
 }
 
-# vim:set sw=2 sts=2 et:
+# vim:set ts=2 sw=2 et:
diff --git a/abs/extra/community/chromium/chromium.desktop b/abs/extra/community/chromium/chromium.desktop
index 4bb6981..18446d4 100644
--- a/abs/extra/community/chromium/chromium.desktop
+++ b/abs/extra/community/chromium/chromium.desktop
@@ -110,4 +110,4 @@ Terminal=false
 Icon=chromium
 Type=Application
 Categories=GTK;Network;WebBrowser;
-MimeType=text/html;text/xml;application/xhtml_xml;
+MimeType=text/html;text/xml;application/xhtml+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
diff --git a/abs/extra/community/chromium/chromium.install b/abs/extra/community/chromium/chromium.install
index e70c054..d43ea7c 100644
--- a/abs/extra/community/chromium/chromium.install
+++ b/abs/extra/community/chromium/chromium.install
@@ -1,11 +1,12 @@
 post_install() {
-	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+    xdg-icon-resource forceupdate --theme hicolor &>/dev/null
+    update-desktop-database -q
 }
 
 post_upgrade() {
-	post_install
+    post_install
 }
 
 post_remove() {
-	post_install
+    post_install
 }
diff --git a/abs/extra/community/chromium/gcc-4.6.patch b/abs/extra/community/chromium/gcc-4.6.patch
new file mode 100644
index 0000000..931cd64
--- /dev/null
+++ b/abs/extra/community/chromium/gcc-4.6.patch
@@ -0,0 +1,159 @@
+diff -u -r chrome/browser/search_engines/template_url_prepopulate_data.h chrome/browser/search_engines/template_url_prepopulate_data.h
+--- chrome/browser/search_engines/template_url_prepopulate_data.h	2011-04-13 13:23:41.000000000 +0400
++++ chrome/browser/search_engines/template_url_prepopulate_data.h	2011-04-20 19:32:58.000000000 +0400
+@@ -7,6 +7,7 @@
+ #pragma once
+ 
+ #include <vector>
++#include <cstddef>
+ 
+ class GURL;
+ class PrefService;
+diff -u -r gpu/command_buffer/common/types.h gpu/command_buffer/common/types.h
+--- gpu/command_buffer/common/types.h	2011-04-13 13:22:57.000000000 +0400
++++ gpu/command_buffer/common/types.h	2011-04-20 19:32:58.000000000 +0400
+@@ -11,6 +11,7 @@
+ #include <stdint.h>
+ #endif
+ #include <string>
++#include <cstddef>
+ 
+ typedef signed char         schar;
+ typedef signed char         int8;
+diff -u -r ppapi/cpp/paint_aggregator.h ppapi/cpp/paint_aggregator.h
+--- ppapi/cpp/paint_aggregator.h	2011-04-13 13:22:58.000000000 +0400
++++ ppapi/cpp/paint_aggregator.h	2011-04-20 20:11:44.000000000 +0400
+@@ -9,6 +9,7 @@
+ 
+ #include "ppapi/cpp/point.h"
+ #include "ppapi/cpp/rect.h"
++#include <cstddef>
+ 
+ namespace pp {
+ 
+diff -u -r third_party/libjingle/source/talk/base/sigslot.h third_party/libjingle/source/talk/base/sigslot.h
+--- third_party/libjingle/source/talk/base/sigslot.h	2011-04-13 13:25:41.000000000 +0400
++++ third_party/libjingle/source/talk/base/sigslot.h	2011-04-20 20:00:43.000000000 +0400
+@@ -80,6 +80,7 @@
+ 
+ #include <set>
+ #include <list>
++#include <cstddef>
+ 
+ // On our copy of sigslot.h, we force single threading
+ #define SIGSLOT_PURE_ISO
+diff -u -r third_party/ots/src/os2.cc third_party/ots/src/os2.cc
+--- third_party/ots/src/os2.cc	2011-04-13 13:24:06.000000000 +0400
++++ third_party/ots/src/os2.cc	2011-04-20 19:45:44.000000000 +0400
+@@ -5,6 +5,7 @@
+ #include "os2.h"
+ 
+ #include "head.h"
++#include <cstddef>
+ 
+ // OS/2 - OS/2 and Windows Metrics
+ // http://www.microsoft.com/opentype/otspec/os2.htm
+diff -u -r third_party/tcmalloc/chromium/src/base/stl_allocator.h third_party/tcmalloc/chromium/src/base/stl_allocator.h
+--- third_party/tcmalloc/chromium/src/base/stl_allocator.h	2011-04-13 13:23:04.000000000 +0400
++++ third_party/tcmalloc/chromium/src/base/stl_allocator.h	2011-04-20 19:32:58.000000000 +0400
+@@ -38,6 +38,7 @@
+ #include <config.h>
+ 
+ #include <limits>
++#include <cstddef>
+ 
+ #include "base/basictypes.h"
+ #include "base/logging.h"
+diff -u -r third_party/tcmalloc/chromium/src/base/vdso_support.h third_party/tcmalloc/chromium/src/base/vdso_support.h
+--- third_party/tcmalloc/chromium/src/base/vdso_support.h	2011-04-13 13:23:04.000000000 +0400
++++ third_party/tcmalloc/chromium/src/base/vdso_support.h	2011-04-20 19:32:58.000000000 +0400
+@@ -37,6 +37,7 @@
+ 
+ #define HAVE_VDSO_SUPPORT 1
+ 
++#include <cstddef>
+ #include <stdlib.h>     // for NULL
+ #include <link.h>  // for ElfW
+ #include "base/basictypes.h"
+diff -u -r third_party/tcmalloc/chromium/src/common.cc third_party/tcmalloc/chromium/src/common.cc
+--- 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 <cstddef>
+ 
+ namespace tcmalloc {
+ 
+diff -u -r third_party/tcmalloc/chromium/src/symbolize.h third_party/tcmalloc/chromium/src/symbolize.h
+--- third_party/tcmalloc/chromium/src/symbolize.h	2011-04-13 13:23:04.000000000 +0400
++++ third_party/tcmalloc/chromium/src/symbolize.h	2011-04-20 19:32:58.000000000 +0400
+@@ -38,6 +38,7 @@
+ #include <stdint.h>  // for uintptr_t
+ #endif
+ #include <map>
++#include <cstddef>
+ 
+ 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
+@@ -7,6 +7,7 @@
+ #pragma once
+ 
+ #include <vector>
++#include <cstddef>
+ 
+ class SkBitmap;
+ 
+--- ppapi/cpp/paint_aggregator.h	2010-12-23 18:10:27.000000000 -0600
++++ ppapi/cpp/paint_aggregator.h~	2011-04-19 05:34:56.085582885 -0500
+@@ -5,6 +5,7 @@
+ #ifndef PPAPI_CPP_PAINT_AGGREGATOR_H_
+ #define PPAPI_CPP_PAINT_AGGREGATOR_H_
+ 
++#include <cstddef>
+ #include <vector>
+ 
+ #include "ppapi/cpp/point.h"
+Index: Source/WebCore/ChangeLog
+===================================================================
+--- third_party/WebKit/Source/WebCore/ChangeLog	(revision 84120)
++++ third_party/WebKit/Source/WebCore/ChangeLog	(revision 84123)
+@@ -1,2 +1,24 @@
++2011-04-17  Thierry Reding  <thierry.reding@avionic-design.de>
++
++        Reviewed by Adam Barth.
++
++        Fix build with GCC 4.6.
++
++        * dom/make_names.pl: Execute preprocessor without the -P option. The
++        preprocessor in GCC 4.6 eats empty lines, effectively breaking the
++        parsing performed by this script. Dropping the -P option when invoking
++        the preprocessor keeps the empty lines but as a side-effect also adds
++        additional linemarkers.
++
++        From the cpp manpage:
++
++          -P  Inhibit generation of linemarkers in the output from the
++              preprocessor. This might be useful when running the preprocessor
++              on something that is not C code, and will be sent to a program
++              which might be confused by the linemarkers.
++
++        The linemarkers are not problematic, however, because the script
++        properly handles them by ignoring all lines starting with a #.
++
+ 2011-04-17  David Kilzer  <ddkilzer@apple.com>
diff --git a/abs/extra/community/chromium/glibc-2.14.patch b/abs/extra/community/chromium/glibc-2.14.patch
new file mode 100644
index 0000000..1bfbbee
--- /dev/null
+++ b/abs/extra/community/chromium/glibc-2.14.patch
@@ -0,0 +1,51 @@
+--- 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 -----------------------------------
-- 
cgit v0.12