diff --git a/extra/chromium/PKGBUILD b/extra/chromium/PKGBUILD index 9379c4d09..8e7a5617d 100644 --- a/extra/chromium/PKGBUILD +++ b/extra/chromium/PKGBUILD @@ -11,9 +11,7 @@ # ALARM: Kevin Mihelich # - removed NaCl, not for ARM # - adjusted gyp flags for v7h -# - use system ffmpeg, added ffmpeg to depends # - patch to fix webrtc code for non-android ARM -# - patch to fix using system ffmpeg # - patch (hack) to fix skia # # moonman @@ -24,7 +22,7 @@ highmem=1 pkgname=chromium pkgver=30.0.1599.101 -pkgrel=1 +pkgrel=1.1 pkgdesc="The open-source project behind Google Chrome, an attempt at creating a safer, faster, and more stable browser" arch=('armv6h' 'armv7h') url="http://www.chromium.org/" @@ -32,7 +30,7 @@ license=('BSD') depends=('gtk2' 'nss' 'alsa-lib' 'xdg-utils' 'bzip2' 'libevent' 'libxss' 'icu' 'libgcrypt' 'ttf-font' 'udev' 'dbus' 'flac' 'opus' 'libwebp' 'snappy' 'speech-dispatcher' 'pciutils' 'libpulse' 'harfbuzz' 'harfbuzz-icu' - 'desktop-file-utils' 'hicolor-icon-theme' 'ffmpeg') + 'desktop-file-utils' 'hicolor-icon-theme') makedepends=('python2' 'perl' 'gperf' 'yasm' 'mesa' 'libgnome-keyring' 'elfutils' 'subversion') optdepends=('kdebase-kdialog: needed for file dialogs in KDE') @@ -47,16 +45,16 @@ source=(https://gsdview.appspot.com/chromium-browser-official/$pkgname-$pkgver.t chromium.sh chromium-system-icu-r0.patch arm-webrtc-fix.patch - chromium-system-ffmpeg-r7.patch - skia.patch) + skia.patch + v6-ffmpeg.patch) sha256sums=('d9596f28c6922bb5c8d03215ece1a7c51421a2e6f882213eb997f98bd34ca42d' '09bfac44104f4ccda4c228053f689c947b3e97da9a4ab6fa34ce061ee83d0322' '478340d5760a9bd6c549e19b1b5d1c5b4933ebf5f8cfb2b3e2d70d07443fe232' '4999fded897af692f4974f0a3e3bbb215193519918a1fa9b31ed51e74a2dccb9' '9bf164094ff33565f79807ab17cbd1d3f75655383fdaa01bb1a702263174cf09' '222ec0db5d40b02e4ebbde8a1f1c5de3f0579e51836be87be138c44f8487d0ce' - '4093f87f16f8dc4dd846a88d5b6faf91bed2542308c6a11fef93400c94dbf192' - '77668a94924c6bce6c48ca78c5cb778c6728bb687b66334b7164d7301a267939') + '77668a94924c6bce6c48ca78c5cb778c6728bb687b66334b7164d7301a267939' + '3fbabcbd512494b529e0a0e17560735887acf2291a74653750f9b29f5d45774d') # 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 @@ -73,8 +71,8 @@ prepare() { # Fix WebRTC for ARM patch -Np2 -i "$srcdir/arm-webrtc-fix.patch" - # Fix using system ffmpeg - patch -Np1 -i "$srcdir/chromium-system-ffmpeg-r7.patch" + # Fix ffmpeg build for armv6 + [ "$CARCH" == "armv6h" ] && patch -Np1 -i "$srcdir/v6-ffmpeg.patch" # Temp fix for skia patch -Np0 -i "$srcdir/skia.patch" @@ -138,7 +136,7 @@ fi -Dproprietary_codecs=1 -Duse_system_bzip2=1 -Duse_system_flac=1 - -Duse_system_ffmpeg=1 + -Duse_system_ffmpeg=0 -Duse_system_harfbuzz=1 -Duse_system_icu=1 -Duse_system_libevent=1 @@ -179,7 +177,7 @@ package() { install -Dm4755 -o root -g root out/Release/chrome_sandbox \ "$pkgdir/usr/lib/chromium/chrome-sandbox" - cp out/Release/*.pak \ + cp out/Release/{*.pak,libffmpegsumo.so} \ "$pkgdir/usr/lib/chromium/" # Allow users to override command-line options diff --git a/extra/chromium/chromium-system-ffmpeg-r7.patch b/extra/chromium/chromium-system-ffmpeg-r7.patch deleted file mode 100644 index f3c2b96d1..000000000 --- a/extra/chromium/chromium-system-ffmpeg-r7.patch +++ /dev/null @@ -1,115 +0,0 @@ ---- 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 { - ---- 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 -@@ -85,8 +85,10 @@ - return kCodecGSM_MS; - case AV_CODEC_ID_PCM_MULAW: - return kCodecPCM_MULAW; -+#ifndef CHROMIUM_OMIT_AV_CODEC_ID_OPUS - case AV_CODEC_ID_OPUS: - return kCodecOpus; -+#endif - default: - DVLOG(1) << "Unknown audio CodecID: " << codec_id; - } -@@ -130,8 +132,10 @@ - return AV_CODEC_ID_GSM_MS; - case kCodecPCM_MULAW: - return AV_CODEC_ID_PCM_MULAW; -+#ifndef CHROMIUM_OMIT_AV_CODEC_ID_OPUS - case kCodecOpus: - return AV_CODEC_ID_OPUS; -+#endif - default: - DVLOG(1) << "Unknown AudioCodec: " << audio_codec; - } -@@ -149,8 +153,10 @@ - return kCodecMPEG4; - case AV_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; - } -@@ -167,8 +173,10 @@ - return AV_CODEC_ID_MPEG4; - case kCodecVP8: - return AV_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; - } ---- a/media/filters/ffmpeg_demuxer.cc.orig 2013-05-09 18:04:25.089276403 +0000 -+++ b/media/filters/ffmpeg_demuxer.cc 2013-05-09 18:05:16.289599070 +0000 -@@ -111,12 +111,15 @@ - // Get side data if any. For now, the only type of side_data is VP8 Alpha. We - // keep this generic so that other side_data types in the future can be - // handled the same way as well. -- av_packet_split_side_data(packet.get()); - int side_data_size = 0; -- uint8* side_data = av_packet_get_side_data( -+ uint8* side_data = NULL; -+#ifndef CHROMIUM_OMIT_AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL -+ av_packet_split_side_data(packet.get()); -+ side_data = av_packet_get_side_data( - packet.get(), - AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, - &side_data_size); -+#endif - - // If a packet is returned by FFmpeg's av_parser_parse2() the packet will - // reference inner memory of FFmpeg. As such we should transfer the packet ---- a/media/base/media_posix.cc.orig 2013-05-24 20:59:12.963046035 +0000 -+++ b/media/base/media_posix.cc 2013-05-24 20:59:50.593275882 +0000 -@@ -11,12 +11,15 @@ - #include "base/path_service.h" - #include "base/strings/stringize_macros.h" - #include "media/ffmpeg/ffmpeg_common.h" -+ -+#if !defined(USE_SYSTEM_FFMPEG) - #include "third_party/ffmpeg/ffmpeg_stubs.h" - - using third_party_ffmpeg::kNumStubModules; - using third_party_ffmpeg::kModuleFfmpegsumo; - using third_party_ffmpeg::InitializeStubs; - using third_party_ffmpeg::StubPathMap; -+#endif - - namespace media { - namespace internal { -@@ -46,6 +49,9 @@ - #endif - - bool InitializeMediaLibraryInternal(const base::FilePath& module_dir) { -+#if defined(USE_SYSTEM_FFMPEG) -+ return true; -+#else - StubPathMap paths; - - // First try to initialize with Chrome's sumo library. -@@ -61,6 +67,7 @@ - FILE_PATH_LITERAL(DSO_NAME("avformat", AVFORMAT_VERSION))).value()); - - return InitializeStubs(paths); -+#endif - } - - } // namespace internal diff --git a/extra/chromium/v6-ffmpeg.patch b/extra/chromium/v6-ffmpeg.patch new file mode 100644 index 000000000..205947cb9 --- /dev/null +++ b/extra/chromium/v6-ffmpeg.patch @@ -0,0 +1,42 @@ +--- ./third_party/ffmpeg/chromium/scripts/build_ffmpeg.sh.orig 2013-10-18 18:18:28.032701497 -0600 ++++ ./third_party/ffmpeg/chromium/scripts/build_ffmpeg.sh 2013-10-18 18:37:10.817807244 -0600 +@@ -310,13 +310,12 @@ + # much smaller than optimized arm builds, hence we go with the global + # CrOS settings. + add_flag_common --enable-armv6 +- add_flag_common --enable-armv6t2 ++ add_flag_common --disable-armv6t2 + add_flag_common --enable-vfp +- add_flag_common --enable-thumb ++ add_flag_common --disable-thumb + add_flag_common --disable-neon +- add_flag_common --extra-cflags=-march=armv7-a +- add_flag_common --extra-cflags=-mtune=cortex-a8 +- add_flag_common --extra-cflags=-mfpu=vfpv3-d16 ++ add_flag_common --extra-cflags=-march=armv6 ++ add_flag_common --extra-cflags=-mfpu=vfp + # NOTE: softfp/hardfp selected at gyp time. + add_flag_common --extra-cflags=-mfloat-abi=hard + elif [ "$TARGET_ARCH" = "arm-neon" ]; then +--- ./third_party/ffmpeg/ffmpeg.gyp.orig 2013-10-18 18:07:27.025272782 -0600 ++++ ./third_party/ffmpeg/ffmpeg.gyp 2013-10-18 18:38:58.462388238 -0600 +@@ -234,9 +234,7 @@ + '-marm', + ], + 'cflags': [ +- '-mthumb', +- '-march=armv7-a', +- '-mtune=cortex-a8', ++ '-march=armv6', + ], + # On arm we use gcc to compile the assembly. + 'sources': [ +@@ -245,7 +243,7 @@ + 'conditions': [ + ['arm_neon == 0', { + 'cflags': [ +- '-mfpu=vfpv3-d16', ++ '-mfpu=vfp', + ], + }, { + 'cflags': [