Date: Tuesday, March 26, 2013 @ 23:50:40 Author: foutrelis Revision: 180846
upgpkg: chromium 26.0.1410.43-1 New upstream release. Start using more system libs. Added: chromium/trunk/chromium-26.0.1410.43-speechd-0.8.patch chromium/trunk/chromium-system-ffmpeg-r2a.patch Modified: chromium/trunk/PKGBUILD Deleted: chromium/trunk/chromium-no-pnacl-r0.patch chromium/trunk/chromium-system-libpng-r0.patch -----------------------------------------+ PKGBUILD | 53 +++---- chromium-26.0.1410.43-speechd-0.8.patch | 11 + chromium-no-pnacl-r0.patch | 20 -- chromium-system-ffmpeg-r2a.patch | 203 ++++++++++++++++++++++++++++++ chromium-system-libpng-r0.patch | 11 - 5 files changed, 241 insertions(+), 57 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2013-03-26 22:37:55 UTC (rev 180845) +++ PKGBUILD 2013-03-26 22:50:40 UTC (rev 180846) @@ -5,38 +5,39 @@ # Contributor: Daniel J Griffiths <ghost1...@archlinux.us> pkgname=chromium -pkgver=25.0.1364.172 -pkgrel=2 +pkgver=26.0.1410.43 +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/" license=('BSD') depends=('gtk2' 'nss' 'alsa-lib' 'xdg-utils' 'bzip2' 'libevent' 'libxss' - 'libgcrypt' 'ttf-font' 'udev' 'dbus' 'pciutils' 'desktop-file-utils' + 'libgcrypt' 'ttf-font' 'udev' 'dbus' 'flac' 'opus' 'libwebp' 'ffmpeg' + 'speech-dispatcher' 'pciutils' 'desktop-file-utils' 'hicolor-icon-theme') makedepends=('python2' 'perl' 'gperf' 'yasm' 'mesa' 'libgnome-keyring' 'elfutils' 'subversion' 'nacl-toolchain-newlib') optdepends=('kdebase-kdialog: needed for file dialogs in KDE') backup=('etc/chromium/default') install=chromium.install -source=(http://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.bz2 +source=(http://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.xz chromium.desktop chromium.default chromium.sh chromium-20.0.1132.57-glib-2.16-use-siginfo_t.patch chromium-25.0.1364.152-fix-crash-when-cups-is-down.patch - chromium-system-libpng-r0.patch chromium-ppapi-r0.patch - chromium-no-pnacl-r0.patch) -sha256sums=('1ca3ff61dbd77c69a26de03b9ca4ce35cb6ca9ba6a510bf279b5a0f107379288' + chromium-system-ffmpeg-r2a.patch + chromium-26.0.1410.43-speechd-0.8.patch) +sha256sums=('31021f81642124b75cb9fa68aa806206dea345bf1aaf7094c71b3f84344b1d84' '09bfac44104f4ccda4c228053f689c947b3e97da9a4ab6fa34ce061ee83d0322' '478340d5760a9bd6c549e19b1b5d1c5b4933ebf5f8cfb2b3e2d70d07443fe232' '4999fded897af692f4974f0a3e3bbb215193519918a1fa9b31ed51e74a2dccb9' 'c1baf14121502efbc2a31b64029dcafa0e28ca5b71ad0e28a3c6342d18198615' '36ff43d8e85a7eac305727057c4ffd45eb7a357ce212a4a3f153037bc34a5ace' - 'd0a8b8f5b3d25be4bd2f060422c467dc827997a0b69dfc34a6d18dc9d2f36868' '1f4b57670d317959bc2dc60e5d2a44aa8fc6028f7ed540cdb502fa0aa99c81bd' - '44061e1648ac4674ad0b9990c265c96c33de435679f6854e4b54a421d81cbe6c') + '8344737762508e33f748a04a81fc460c82e1752ad49d214abf4ff670ecd06925' + '23b04468881642ffdc8457016c8f91df395dfccb4af2ad6b758168180ae070f3') # 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 @@ -55,19 +56,14 @@ # http://code.google.com/p/chromium/issues/detail?id=160574 patch -Np1 -i "$srcdir/chromium-25.0.1364.152-fix-crash-when-cups-is-down.patch" - # Fix compilation against system libpng (patch from Gentoo) - patch -Np0 -i "$srcdir/chromium-system-libpng-r0.patch" - # It somehow still manages to build against bundled libpng - find third_party/libpng -type f -not -iname '*.gyp*' -delete - # Fix build without NaCl glibc toolchain (patch from Gentoo) patch -Np0 -i "$srcdir/chromium-ppapi-r0.patch" - # Fix build without NaCl pnacl toolchain (patch from Gentoo) - patch -Np0 -i "$srcdir/chromium-no-pnacl-r0.patch" + # Patch to build with system ffmpeg (patch from Gentoo) + patch -Np1 -i "$srcdir/chromium-system-ffmpeg-r2a.patch" - # Missing gyp files in tarball (http://crbug.com/144823) - sed -i '/nacl_test_data\.gyp/d' chrome/chrome_tests.gypi + # Fix header location for speech-dispatcher 0.8 (patch from PLD Linux) + patch -Np2 -i "$srcdir/chromium-26.0.1410.43-speechd-0.8.patch" # Use Python 2 find . -type f -exec sed -i -r \ @@ -80,10 +76,10 @@ export PATH="$srcdir/python2-path:$PATH" # Prepare NaCL toolchain - mkdir -p sdk native_client/toolchain/.tars - cp -a /usr/lib/nacl-toolchain-newlib sdk/nacl-sdk - tar czf native_client/toolchain/.tars/naclsdk_linux_x86.tgz sdk - rm -r sdk + mkdir -p out/Release/obj/gen/sdk/toolchain + cp -a /usr/lib/nacl-toolchain-newlib \ + out/Release/obj/gen/sdk/toolchain/linux_x86_newlib + touch out/Release/obj/gen/sdk/toolchain/linux_x86_newlib/stamp.untar # CFLAGS are passed through release_extra_cflags below export -n CFLAGS CXXFLAGS @@ -95,25 +91,30 @@ -Dwerror= \ -Dlinux_link_gsettings=1 \ -Dlinux_link_libpci=1 \ + -Dlinux_link_libspeechd=1 \ -Dlinux_sandbox_path=/usr/lib/chromium/chromium-sandbox \ -Dlinux_strip_binary=1 \ -Dlinux_use_gold_binary=0 \ -Dlinux_use_gold_flags=0 \ -Drelease_extra_cflags="$CFLAGS" \ - -Dffmpeg_branding=Chrome \ -Dproprietary_codecs=1 \ -Duse_system_bzip2=1 \ - -Duse_system_ffmpeg=0 \ + -Duse_system_flac=1 \ + -Duse_system_ffmpeg=1 \ -Duse_system_libevent=1 \ -Duse_system_libjpeg=1 \ -Duse_system_libpng=1 \ + -Duse_system_libwebp=1 \ -Duse_system_libxml=0 \ + -Duse_system_opus=1 \ -Duse_system_ssl=0 \ + -Duse_system_xdg_utils=1 \ -Duse_system_yasm=1 \ -Duse_system_zlib=0 \ -Duse_gconf=0 \ -Ddisable_glibc=1 \ -Ddisable_pnacl=1 \ + -Ddisable_newlib_untar=1 \ -Ddisable_sse2=1 make chrome chrome_sandbox BUILDTYPE=Release @@ -127,12 +128,12 @@ install -Dm4755 -o root -g root out/Release/chrome_sandbox \ "$pkgdir/usr/lib/chromium/chromium-sandbox" - cp out/Release/{*.pak,libffmpegsumo.so,nacl_helper{,_bootstrap}} \ + cp out/Release/{*.pak,nacl_helper{,_bootstrap}} \ out/Release/{libppGoogleNaClPluginChrome.so,nacl_irt_*.nexe} \ "$pkgdir/usr/lib/chromium/" if [[ $CARCH == i686 ]]; then - rm "$pkgdir"/usr/lib/chromium/nacl_irt{,_srpc}_x86_64.nexe + rm "$pkgdir/usr/lib/chromium/nacl_irt_x86_64.nexe" fi # Allow users to override command-line options Added: chromium-26.0.1410.43-speechd-0.8.patch =================================================================== --- chromium-26.0.1410.43-speechd-0.8.patch (rev 0) +++ chromium-26.0.1410.43-speechd-0.8.patch 2013-03-26 22:50:40 UTC (rev 180846) @@ -0,0 +1,11 @@ +--- chromium-browser-26.0.1410.19/src/build/linux/system.gyp~ 2013-03-04 00:04:06.000000000 +0200 ++++ chromium-browser-26.0.1410.19/src/build/linux/system.gyp 2013-03-04 13:45:31.822101677 +0200 +@@ -494,7 +494,7 @@ + '--name', 'LibSpeechdLoader', + '--output-h', '<(output_h)', + '--output-cc', '<(output_cc)', +- '--header', '<libspeechd.h>', ++ '--header', '<speech-dispatcher/libspeechd.h>', + '--link-directly=<(linux_link_libspeechd)', + 'spd_open', + 'spd_say', Deleted: chromium-no-pnacl-r0.patch =================================================================== --- chromium-no-pnacl-r0.patch 2013-03-26 22:37:55 UTC (rev 180845) +++ chromium-no-pnacl-r0.patch 2013-03-26 22:50:40 UTC (rev 180846) @@ -1,20 +0,0 @@ ---- native_client/build/untrusted.gypi (revision 10450) -+++ native_client/build/untrusted.gypi (working copy) -@@ -771,7 +771,7 @@ - ], - }, - 'target_conditions': [ -- ['nexe_target!="" and build_pnacl_newlib!=0', { -+ ['nexe_target!="" and disable_pnacl==0 and build_pnacl_newlib!=0', { - 'variables': { - 'out_pnacl_newlib_x86_32_nexe%': '<(PRODUCT_DIR)/>(nexe_target)_pnacl_newlib_x32.nexe', - 'out_pnacl_newlib_x86_64_nexe%': '<(PRODUCT_DIR)/>(nexe_target)_pnacl_newlib_x64.nexe', -@@ -889,7 +889,7 @@ - }], - ], - }], -- ['nlib_target!="" and build_pnacl_newlib!=0', { -+ ['nlib_target!="" and disable_pnacl==0 and build_pnacl_newlib!=0', { - 'variables': { - 'tool_name': 'pnacl_newlib', - 'inst_dir': '<(SHARED_INTERMEDIATE_DIR)/tc_pnacl_newlib', Added: chromium-system-ffmpeg-r2a.patch =================================================================== --- chromium-system-ffmpeg-r2a.patch (rev 0) +++ chromium-system-ffmpeg-r2a.patch 2013-03-26 22:50:40 UTC (rev 180846) @@ -0,0 +1,203 @@ +diff --git a/media/filters/ffmpeg_glue.h b/media/filters/ffmpeg_glue.h +index 17241b9..8a92312 100644 +--- a/media/filters/ffmpeg_glue.h ++++ b/media/filters/ffmpeg_glue.h +@@ -28,9 +28,9 @@ + #include "base/basictypes.h" + #include "base/memory/scoped_ptr.h" + #include "media/base/media_export.h" ++#include "media/ffmpeg/ffmpeg_common.h" + + struct AVFormatContext; +-struct AVIOContext; + + namespace media { + +diff --git a/media/media.gyp b/media/media.gyp +index df217d2..fde3830 100644 +--- a/media/media.gyp ++++ b/media/media.gyp +@@ -363,6 +363,9 @@ + 'dependencies': [ + '../third_party/ffmpeg/ffmpeg.gyp:ffmpeg', + ], ++ 'export_dependent_settings': [ ++ '../third_party/ffmpeg/ffmpeg.gyp:ffmpeg', ++ ], + }, { # media_use_ffmpeg == 0 + # Exclude the sources that depend on ffmpeg. + 'sources!': [ +--- a/media/ffmpeg/ffmpeg_common.cc.orig 2013-01-17 00:07:51.635057013 +0000 ++++ b/media/ffmpeg/ffmpeg_common.cc 2013-01-17 00:15:50.867406811 +0000 +@@ -10,6 +10,8 @@ + #include "media/base/video_frame.h" + #include "media/base/video_util.h" + ++#undef SampleFormat ++ + namespace media { + + // Why FF_INPUT_BUFFER_PADDING_SIZE? FFmpeg assumes all input buffers are +Index: build/common.gypi +diff --git a/build/common.gypi b/build/common.gypi +index 34c6a15e0add1001e4a24712c9c809e3b698a390..521decfa19d102263086ebf4de7c8bac74c95e30 100644 +--- a/build/common.gypi ++++ b/build/common.gypi +@@ -741,6 +741,9 @@ + 'google_default_client_secret%': '<(google_default_client_secret)', + 'enable_managed_users%': '<(enable_managed_users)', + ++ # Use system ffmpeg instead of bundled one. ++ 'use_system_ffmpeg%': 0, ++ + # Use system mesa instead of bundled one. + 'use_system_mesa%': 0, + +Index: media/ffmpeg/ffmpeg_common.cc +diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc +index 26953efc699a0dc1ce9cd951eb47b04713974b44..bf234304aa2b26fb7e0f729a4e75257099c00358 100644 +--- a/media/ffmpeg/ffmpeg_common.cc ++++ b/media/ffmpeg/ffmpeg_common.cc +@@ -84,8 +84,10 @@ AudioCodec CodecIDToAudioCodec(CodecID codec_id) { + return kCodecGSM_MS; + case CODEC_ID_PCM_MULAW: + return kCodecPCM_MULAW; ++#ifndef CHROMIUM_OMIT_CODEC_ID_OPUS + case CODEC_ID_OPUS: + return kCodecOpus; ++#endif + default: + DVLOG(1) << "Unknown audio CodecID: " << codec_id; + } +@@ -129,8 +131,10 @@ static CodecID AudioCodecToCodecID(AudioCodec audio_codec, + return CODEC_ID_GSM_MS; + case kCodecPCM_MULAW: + return CODEC_ID_PCM_MULAW; ++#ifndef CHROMIUM_OMIT_CODEC_ID_OPUS + case kCodecOpus: + return CODEC_ID_OPUS; ++#endif + default: + DVLOG(1) << "Unknown AudioCodec: " << audio_codec; + } +@@ -147,8 +151,10 @@ VideoCodec CodecIDToVideoCodec(CodecID codec_id) { + return kCodecMPEG4; + case CODEC_ID_VP8: + return kCodecVP8; ++#ifndef CHROMIUM_OMIT_AV_CODEC_ID_VP9 + case AV_CODEC_ID_VP9: + return kCodecVP9; ++#endif + default: + DVLOG(1) << "Unknown video CodecID: " << codec_id; + } +@@ -165,8 +171,10 @@ static CodecID VideoCodecToCodecID(VideoCodec video_codec) { + return CODEC_ID_MPEG4; + case kCodecVP8: + return CODEC_ID_VP8; ++#ifndef CHROMIUM_OMIT_AV_CODEC_ID_VP9 + case kCodecVP9: + return AV_CODEC_ID_VP9; ++#endif + default: + DVLOG(1) << "Unknown VideoCodec: " << video_codec; + } +@@ -468,8 +476,10 @@ ChannelLayout ChannelLayoutToChromeChannelLayout(int64_t layout, int channels) { + return CHANNEL_LAYOUT_6_1_FRONT; + case AV_CH_LAYOUT_7POINT0_FRONT: + return CHANNEL_LAYOUT_7_0_FRONT; ++#ifdef AV_CH_LAYOUT_7POINT1_WIDE_BACK + case AV_CH_LAYOUT_7POINT1_WIDE_BACK: + return CHANNEL_LAYOUT_7_1_WIDE_BACK; ++#endif + case AV_CH_LAYOUT_OCTAGONAL: + return CHANNEL_LAYOUT_OCTAGONAL; + default: +Index: media/media.gyp +diff --git a/media/media.gyp b/media/media.gyp +index f514dec48e5cc78567d141f20e2cb970a8707e92..75b62bebb503e2d9488bf0fc5cec3fd0a7e1916d 100644 +--- a/media/media.gyp ++++ b/media/media.gyp +@@ -469,6 +469,18 @@ + 'filters/vpx_video_decoder.h', + ], + }], ++ ['use_system_ffmpeg == 1', { ++ 'defines': [ ++ '<!(python <(DEPTH)/tools/compile_test/compile_test.py ' ++ '--code "#include <libavcodec/avcodec.h>\n' ++ 'int test() { return CODEC_ID_OPUS; }" ' ++ '--on-failure CHROMIUM_OMIT_CODEC_ID_OPUS)', ++ '<!(python <(DEPTH)/tools/compile_test/compile_test.py ' ++ '--code "#include <libavcodec/avcodec.h>\n' ++ 'int test() { return AV_CODEC_ID_VP9; }" ' ++ '--on-failure CHROMIUM_OMIT_AV_CODEC_ID_VP9)', ++ ], ++ }], + ['OS == "ios"', { + 'includes': [ + # For shared_memory_support_sources variable. +Index: tools/compile_test/compile_test.py +diff --git a/tools/compile_test/compile_test.py b/tools/compile_test/compile_test.py +new file mode 100755 +index 0000000000000000000000000000000000000000..a52c0720209142af858d656a071ca43328dd3b16 +--- /dev/null ++++ b/tools/compile_test/compile_test.py +@@ -0,0 +1,57 @@ ++#!/usr/bin/env python ++# Copyright (c) 2013 The Chromium Authors. All rights reserved. ++# Use of this source code is governed by a BSD-style license that can be ++# found in the LICENSE file. ++ ++""" ++Tries to compile given code, produces different output depending on success. ++ ++This is similar to checks done by ./configure scripts. ++""" ++ ++ ++import optparse ++import os ++import shutil ++import subprocess ++import sys ++import tempfile ++ ++ ++def DoMain(argv): ++ parser = optparse.OptionParser() ++ parser.add_option('--code') ++ parser.add_option('--on-success', default='') ++ parser.add_option('--on-failure', default='') ++ ++ options, args = parser.parse_args(argv) ++ ++ if not options.code: ++ parser.error('Missing required --code switch.') ++ ++ cxx = os.environ.get('CXX', 'g++') ++ ++ tmpdir = tempfile.mkdtemp() ++ try: ++ cxx_path = os.path.join(tmpdir, 'test.cc') ++ with open(cxx_path, 'w') as f: ++ f.write(options.code.decode('string-escape')) ++ ++ o_path = os.path.join(tmpdir, 'test.o') ++ ++ cxx_popen = subprocess.Popen([cxx, cxx_path, '-o', o_path, '-c'], ++ stdout=subprocess.PIPE, ++ stderr=subprocess.PIPE) ++ cxx_stdout, cxx_stderr = cxx_popen.communicate() ++ if cxx_popen.returncode == 0: ++ print options.on_success ++ else: ++ print options.on_failure ++ finally: ++ shutil.rmtree(tmpdir) ++ ++ return 0 ++ ++ ++if __name__ == '__main__': ++ sys.exit(DoMain(sys.argv[1:])) Deleted: chromium-system-libpng-r0.patch =================================================================== --- chromium-system-libpng-r0.patch 2013-03-26 22:37:55 UTC (rev 180845) +++ chromium-system-libpng-r0.patch 2013-03-26 22:50:40 UTC (rev 180846) @@ -1,11 +0,0 @@ ---- build/shim_headers.gypi.orig 2012-12-20 02:51:12.000000000 +0100 -+++ build/shim_headers.gypi 2012-12-20 02:51:40.000000000 +0100 -@@ -10,7 +10,7 @@ - - { - 'variables': { -- 'shim_headers_path': '<(INTERMEDIATE_DIR)/shim_headers', -+ 'shim_headers_path': '<(SHARED_INTERMEDIATE_DIR)/shim_headers/<(_target_name)', - }, - 'direct_dependent_settings': { - 'include_dirs+': [