Date: Wednesday, October 2, 2013 @ 23:49:45 Author: foutrelis Revision: 195867
upgpkg: chromium 30.0.1599.66-1 New upstream release. Added: chromium/trunk/chromium-system-icu-r0.patch Modified: chromium/trunk/PKGBUILD Deleted: chromium/trunk/chromium-28.0.1500.71-avoid-std-string-copying-in-GetFileNameInWhitelist.patch --------------------------------------------------------------------------------+ PKGBUILD | 47 ++++++---- chromium-28.0.1500.71-avoid-std-string-copying-in-GetFileNameInWhitelist.patch | 46 --------- chromium-system-icu-r0.patch | 26 +++++ 3 files changed, 56 insertions(+), 63 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2013-10-02 19:57:01 UTC (rev 195866) +++ PKGBUILD 2013-10-02 21:49:45 UTC (rev 195867) @@ -5,7 +5,8 @@ # Contributor: Daniel J Griffiths <[email protected]> pkgname=chromium -pkgver=29.0.1547.76 +pkgver=30.0.1599.66 +_toolchains_rev=12029 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') @@ -16,20 +17,32 @@ 'speech-dispatcher' 'pciutils' 'libpulse' 'harfbuzz' 'harfbuzz-icu' 'desktop-file-utils' 'hicolor-icon-theme') makedepends=('python2' 'perl' 'gperf' 'yasm' 'mesa' 'libgnome-keyring' - 'elfutils' 'subversion' 'nacl-toolchain-newlib') + 'elfutils' 'subversion') +[[ $CARCH = x86_64 ]] && makedepends+=('lib32-gcc-libs' 'lib32-zlib') optdepends=('kdebase-kdialog: needed for file dialogs in KDE') backup=('etc/chromium/default') install=chromium.install source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.xz + naclsdk_nacl_linux_x86-$_toolchains_rev.tgz::https://commondatastorage.googleapis.com/nativeclient-archive2/toolchain/$_toolchains_rev/naclsdk_linux_x86.tgz + naclsdk_pnacl_linux_x86-$_toolchains_rev.tgz::https://commondatastorage.googleapis.com/nativeclient-archive2/toolchain/$_toolchains_rev/naclsdk_pnacl_linux_x86.tgz + naclsdk_pnacl_translator-$_toolchains_rev.tgz::https://commondatastorage.googleapis.com/nativeclient-archive2/toolchain/$_toolchains_rev/naclsdk_pnacl_translator.tgz + naclsdk_pnacl_translator-$_toolchains_rev.tgz.sha1hash::https://commondatastorage.googleapis.com/nativeclient-archive2/toolchain/$_toolchains_rev/naclsdk_pnacl_translator.tgz.sha1hash chromium.desktop chromium.default chromium.sh - chromium-28.0.1500.71-avoid-std-string-copying-in-GetFileNameInWhitelist.patch) -sha256sums=('61db2740f6eb7f95aeadf20d5e34a5c6759e9e8d08b88f5c960e041cfc502888' + chromium-system-icu-r0.patch) +noextract=(naclsdk_nacl_linux_x86-$_toolchains_rev.tgz + naclsdk_pnacl_linux_x86-$_toolchains_rev.tgz + naclsdk_pnacl_translator-$_toolchains_rev.tgz) +sha256sums=('8fe8262fd69b59c759916d17eaf4225d1d5b64c468629cb9a684144d3cd15724' + '641e2acf0e755bfe052016164e9e0198104130b612a042eacf259a2f2630d6cd' + '6ce53b1af8fef34c1557c7fbb764cfbca29cb70b8ee3367746a31976cf115e01' + '0b7afcbad1461336e7062d7c8d64e67e670a1fce07214e24313204af1f3a5a70' + 'd6c5ed767ee9ee4e92b4de958cd32b0152783f170c1483fe99d2199fc2623813' '09bfac44104f4ccda4c228053f689c947b3e97da9a4ab6fa34ce061ee83d0322' '478340d5760a9bd6c549e19b1b5d1c5b4933ebf5f8cfb2b3e2d70d07443fe232' '4999fded897af692f4974f0a3e3bbb215193519918a1fa9b31ed51e74a2dccb9' - '7c2e448c30677999f524f9513c2f998f3cb15bc6084692cad9c3f310aa813530') + '9bf164094ff33565f79807ab17cbd1d3f75655383fdaa01bb1a702263174cf09') # 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 @@ -42,10 +55,8 @@ prepare() { cd "$srcdir/$pkgname-$pkgver" - # Fix deadlock related to the GPU sandbox when tcmalloc isn't used - # https://code.google.com/p/chromium/issues/detail?id=255063 - # https://bugs.gentoo.org/show_bug.cgi?id=471198#c23 - patch -Np1 -i "$srcdir/chromium-28.0.1500.71-avoid-std-string-copying-in-GetFileNameInWhitelist.patch" + # Fix build with system ICU (patch from Gentoo) + patch -Np0 -i "$srcdir/chromium-system-icu-r0.patch" # Use Python 2 find . -type f -exec sed -i -r \ @@ -57,10 +68,15 @@ ln -s /usr/bin/python2 "$srcdir/python2-path/python" # Prepare NaCL toolchain - 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 + mkdir native_client/toolchain/{.tars,pnacl_translator} + ln -s "$srcdir/naclsdk_nacl_linux_x86-$_toolchains_rev.tgz" \ + native_client/toolchain/.tars/naclsdk_linux_x86.tgz + ln -s "$srcdir/naclsdk_pnacl_linux_x86-$_toolchains_rev.tgz" \ + native_client/toolchain/.tars/naclsdk_pnacl_linux_x86.tgz + ln -s "$srcdir/naclsdk_pnacl_translator-$_toolchains_rev.tgz" \ + native_client/toolchain/.tars/naclsdk_pnacl_translator.tgz + ln -s "$srcdir/naclsdk_pnacl_translator-$_toolchains_rev.tgz.sha1hash" \ + native_client/toolchain/pnacl_translator/SOURCE_SHA1 } build() { @@ -83,7 +99,6 @@ -Dlinux_link_libpci=1 -Dlinux_link_libspeechd=1 -Dlinux_link_pulseaudio=1 - -Dlinux_sandbox_path=/usr/lib/chromium/chromium-sandbox -Dlinux_strip_binary=1 -Dlinux_use_gold_binary=0 -Dlinux_use_gold_flags=0 @@ -111,8 +126,6 @@ -Duse_system_zlib=0 -Duse_gconf=0 -Ddisable_glibc=1 - -Ddisable_pnacl=1 - -Ddisable_newlib_untar=1 -Ddisable_sse2=1) build/linux/unbundle/replace_gyp_files.py "${_chromium_conf[@]}" @@ -127,7 +140,7 @@ install -D out/Release/chrome "$pkgdir/usr/lib/chromium/chromium" install -Dm4755 -o root -g root out/Release/chrome_sandbox \ - "$pkgdir/usr/lib/chromium/chromium-sandbox" + "$pkgdir/usr/lib/chromium/chrome-sandbox" cp out/Release/{*.pak,libffmpegsumo.so,nacl_helper{,_bootstrap}} \ out/Release/{libppGoogleNaClPluginChrome.so,nacl_irt_*.nexe} \ Deleted: chromium-28.0.1500.71-avoid-std-string-copying-in-GetFileNameInWhitelist.patch =================================================================== --- chromium-28.0.1500.71-avoid-std-string-copying-in-GetFileNameInWhitelist.patch 2013-10-02 19:57:01 UTC (rev 195866) +++ chromium-28.0.1500.71-avoid-std-string-copying-in-GetFileNameInWhitelist.patch 2013-10-02 21:49:45 UTC (rev 195867) @@ -1,46 +0,0 @@ -Index: sandbox/linux/services/broker_process.cc -diff --git a/sandbox/linux/services/broker_process.cc b/sandbox/linux/services/broker_process.cc -index d2302ea098215c8188eb74b0d36da37506ff302a..7999e77fa34fcef4ad8575fa905d66f645df6986 100644 ---- a/sandbox/linux/services/broker_process.cc -+++ b/sandbox/linux/services/broker_process.cc -@@ -53,7 +53,7 @@ static const int kCurrentProcessOpenFlagsMask = O_CLOEXEC; - // async signal safe if |file_to_open| is NULL. - // TODO(jln): assert signal safety. - bool GetFileNameInWhitelist(const std::vector<std::string>& allowed_file_names, -- const std::string& requested_filename, -+ const char* requested_filename, - const char** file_to_open) { - if (file_to_open && *file_to_open) { - // Make sure that callers never pass a non-empty string. In case callers -@@ -62,13 +62,17 @@ bool GetFileNameInWhitelist(const std::vector<std::string>& allowed_file_names, - RAW_LOG(FATAL, "*file_to_open should be NULL"); - return false; - } -+ -+ // Look for |requested_filename| in |allowed_file_names|. -+ // We don't use ::find() because it takes a std::string and -+ // the conversion allocates memory. - std::vector<std::string>::const_iterator it; -- it = std::find(allowed_file_names.begin(), allowed_file_names.end(), -- requested_filename); -- if (it < allowed_file_names.end()) { // requested_filename was found? -- if (file_to_open) -- *file_to_open = it->c_str(); -- return true; -+ for (it = allowed_file_names.begin(); it != allowed_file_names.end(); it++) { -+ if (strcmp(requested_filename, it->c_str()) == 0) { -+ if (file_to_open) -+ *file_to_open = it->c_str(); -+ return true; -+ } - } - return false; - } -@@ -393,6 +397,7 @@ void BrokerProcess::AccessFileForIPC(const std::string& requested_filename, - const char* file_to_access = NULL; - const bool safe_to_access_file = GetFileNameIfAllowedToAccess( - requested_filename.c_str(), mode, &file_to_access); -+ - if (safe_to_access_file) { - CHECK(file_to_access); - int access_ret = access(file_to_access, mode); Added: chromium-system-icu-r0.patch =================================================================== --- chromium-system-icu-r0.patch (rev 0) +++ chromium-system-icu-r0.patch 2013-10-02 21:49:45 UTC (rev 195867) @@ -0,0 +1,26 @@ +--- build/linux/unbundle/icu.gyp.orig 2013-09-27 18:18:50.531839532 +0000 ++++ build/linux/unbundle/icu.gyp 2013-09-27 18:19:08.301950500 +0000 +@@ -7,6 +7,7 @@ + { + 'target_name': 'system_icu', + 'type': 'none', ++ 'toolsets': ['host', 'target'], + 'direct_dependent_settings': { + 'defines': [ + 'U_USING_ICU_NAMESPACE=0', +@@ -30,6 +31,7 @@ + { + 'target_name': 'icui18n', + 'type': 'none', ++ 'toolsets': ['host', 'target'], + 'dependencies': ['system_icu'], + 'export_dependent_settings': ['system_icu'], + 'variables': { +@@ -116,6 +118,7 @@ + { + 'target_name': 'icuuc', + 'type': 'none', ++ 'toolsets': ['host', 'target'], + 'dependencies': ['system_icu'], + 'export_dependent_settings': ['system_icu'], + 'variables': {
