summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Pompili2017-05-13 15:37:19 +0200
committerMarco Pompili2017-05-13 15:37:19 +0200
commitaed76a1d9b785e84ecc12f127c75cb6d55cebd7d (patch)
tree19cdc506ccb299e37173a63e79278c563f20e349
parent9d3d85531f8a46ae43739d58cfe5b921629dc237 (diff)
downloadaur-aed76a1d9b785e84ecc12f127c75cb6d55cebd7d.tar.gz
Version 5.9.211.20-1
-rw-r--r--.SRCINFO10
-rw-r--r--PKGBUILD86
-rw-r--r--icu59.diff28
3 files changed, 105 insertions, 19 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 744a54aa7e34..88366a87219a 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,8 +1,8 @@
# Generated by mksrcinfo v8
-# Thu Jan 26 17:58:22 UTC 2017
+# Sat May 13 13:35:30 UTC 2017
pkgbase = v8
pkgdesc = Fast and modern Javascript engine used in Google Chrome.
- pkgver = 5.7.441.1
+ pkgver = 5.9.211.20
pkgrel = 1
url = https://code.google.com/p/v8/
arch = i686
@@ -17,20 +17,24 @@ pkgbase = v8
makedepends = wget
depends = readline
depends = icu
- conflicts = v8-5.2
conflicts = v8-3.14
+ conflicts = v8-3.14-bin
conflicts = v8-3.15
conflicts = v8-3.20
+ conflicts = v8-static-gyp
+ conflicts = v8-static-gyp-5.4
source = depot_tools::git+https://chromium.googlesource.com/chromium/tools/depot_tools.git
source = v8.pc
source = v8_libbase.pc
source = v8_libplatform.pc
source = d8
+ source = icu59.diff
sha256sums = SKIP
sha256sums = 3616bcfb15af7cd5a39bc0f223b2a52f15883a4bc8cfcfb291837c7421363d75
sha256sums = efb37bd706e6535abfa20c77bb16597253391619dae275627312d00ee7332fa3
sha256sums = ae23d543f655b4d8449f98828d0aff6858a777429b9ebdd2e23541f89645d4eb
sha256sums = 6abb07ab1cf593067d19028f385bd7ee52196fc644e315c388f08294d82ceff0
+ sha256sums = d0d3fbb3719f7634cf63b61e03351eef9a7415d9671e6b4fcdf621887c804ae1
pkgname = v8
diff --git a/PKGBUILD b/PKGBUILD
index dbffe24f28a5..78f9c341df0c 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,12 +1,12 @@
+# Maintainer: Marco Pompili <aur (at) emarcs (dot) org>
# Contributor: Anatol Pomozov <anatol.pomozov@gmail.com>
# Contributor: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
# Contributor: Kaiting Chen <kaitocracy@gmail.com>
# Contributor: tocer <tocer.deng@gmail.com>
# Contributor: David Flemström <david.flemstrom@gmail.com>
-# Maintainer: Marco Pompili <aur@emarcs.org>
pkgname=v8
-pkgver=5.7.441.1
+pkgver=5.9.211.20
pkgrel=1
pkgdesc="Fast and modern Javascript engine used in Google Chrome."
arch=('i686' 'x86_64')
@@ -14,18 +14,64 @@ url="https://code.google.com/p/v8/"
license=('BSD')
depends=('readline' 'icu')
makedepends=('clang>=3.8.1' 'clang-tools-extra>=3.8.1' 'python2' 'python2-virtualenv' 'ninja' 'git' 'wget')
-conflicts=('v8-5.2' 'v8-3.14' 'v8-3.15' 'v8-3.20')
+conflicts=('v8-3.14' 'v8-3.14-bin' 'v8-3.15' 'v8-3.20' 'v8-static-gyp' 'v8-static-gyp-5.4')
source=("depot_tools::git+https://chromium.googlesource.com/chromium/tools/depot_tools.git"
"v8.pc"
"v8_libbase.pc"
"v8_libplatform.pc"
- "d8")
-
+ "d8"
+ "icu59.diff")
sha256sums=('SKIP'
'3616bcfb15af7cd5a39bc0f223b2a52f15883a4bc8cfcfb291837c7421363d75'
'efb37bd706e6535abfa20c77bb16597253391619dae275627312d00ee7332fa3'
'ae23d543f655b4d8449f98828d0aff6858a777429b9ebdd2e23541f89645d4eb'
- '6abb07ab1cf593067d19028f385bd7ee52196fc644e315c388f08294d82ceff0')
+ '6abb07ab1cf593067d19028f385bd7ee52196fc644e315c388f08294d82ceff0'
+ 'd0d3fbb3719f7634cf63b61e03351eef9a7415d9671e6b4fcdf621887c804ae1')
+
+
+#
+# Custom configuration for V8
+#
+
+# clang_base_path: Set clang path when not using the clang bundled with V8.
+V8_CLANG_PATH="/usr/"
+
+# is_clang: Set to true when compiling with the Clang compiler. Typically this
+# is used to configure warnings.
+V8_IS_CLANG=false
+
+# is_component_build: Component build. Setting to true compiles targets declared
+# as "components" as shared libraries loaded dynamically.
+# This speeds up development time.
+# When false, components will be linked statically.
+V8_COMPONENT_BUILD=true
+
+# is_debug: Enabling official builds (V8_OFFICIAL_BUILD) automatically sets is_debug to false.
+V8_DEBUG=false
+
+# is_official_build: Set to enable the official build level of optimization.
+# This has nothing to do with branding, but enables an additional level of
+# optimization above release (!is_debug). This might be better expressed
+# as a tri-state (debug, release, official) but for historical reasons there
+# are two separate flags.
+V8_OFFICIAL_BUILD=false
+
+# v8_enable_i18n_support: Enable ECMAScript Internationalization API.
+# Enabling this feature will add a dependency on the ICU library.
+V8_I18N_SUPPORT=true
+
+# v8_use_external_startup_data: Use external files for startup data blobs:
+# the JS builtins sources and the start snapshot.
+V8_USE_EXTERNAL_STARTUP_DATA=""
+
+# Use sysroot
+V8_USE_SYSROOT=false
+
+# treat_warnings_as_errors: Default to warnings as errors for default workflow,
+# where we catch warnings with known toolchains. Allow overriding this e.g.
+# for Chromium builds on Linux that could use a different version of the compiler.
+# With GCC, warnings in no-Chromium code are always not treated as errors.
+V8_WARNINGS_AS_ERRORS=false
case "$CARCH" in
x86_64) V8_ARCH="x64" ;;
@@ -39,7 +85,7 @@ prepare() {
virtualenv2 -q venv
msg2 "Activating Python Virtual Environment"
source venv/bin/activate > /dev/null
- msg2 "Installing dependencies in the Virtual Environment"
+ msg2 "Installing dependencies in the Virtual Environment..."
pip install colorama -q
pip install pylint -q
pip install lazy-object-proxy -q
@@ -62,12 +108,15 @@ prepare() {
./build/linux/unbundle/replace_gn_files.py --undo --system-libraries icu
fi
- msg2 "Syncing"
+ msg2 "Syncing..."
gclient sync --revision ${pkgver}
msg2 "Using system libraries for ICU"
./build/linux/unbundle/replace_gn_files.py --system-libraries icu
+ msg2 "Applying patch for icu 59.x"
+ patch ${srcdir}/v8/src/i18n.cc < ${srcdir}/icu59.diff
+
sed "s/@VERSION@/${pkgver}/g" -i "${srcdir}/v8.pc"
sed "s/@VERSION@/${pkgver}/g" -i "${srcdir}/v8_libbase.pc"
sed "s/@VERSION@/${pkgver}/g" -i "${srcdir}/v8_libplatform.pc"
@@ -79,16 +128,18 @@ build() {
msg2 "Running GN..."
../depot_tools/gn gen $OUTFLD \
-vv --fail-on-unused-args \
- --args='is_debug=false
- is_official_build=true
- is_clang=false
- use_sysroot=false
- clang_base_path="/usr"
- is_component_build=true
- v8_enable_i18n_support=true
- v8_use_external_startup_data=false'
+ --args="clang_base_path=\"$V8_CLANG_PATH\"
+ is_clang=$V8_IS_CLANG
+ is_component_build=$V8_COMPONENT_BUILD
+ is_debug=$V8_DEBUG
+ is_official_build=$V8_OFFICIAL_BUILD
+ treat_warnings_as_errors=$V8_WARNINGS_AS_ERRORS
+ v8_enable_i18n_support=$V8_I18N_SUPPORT
+ v8_use_external_startup_data=\"$V8_USE_EXTERNAL_STARTUP_DATA\"
+ use_sysroot=$V8_USE_SYSROOT"
# Fixes bug in generate_shim_headers.py that fails to create these dirs
+ msg2 "Adding icu missing folders"
mkdir -p "$OUTFLD/gen/shim_headers/icuuc_shim/third_party/icu/source/common/unicode/"
mkdir -p "$OUTFLD/gen/shim_headers/icui18n_shim/third_party/icu/source/i18n/unicode/"
@@ -118,6 +169,9 @@ package() {
install -Dm755 $OUTFLD/libv8_libbase.so ${pkgdir}/usr/lib/libv8_libbase.so
install -Dm755 $OUTFLD/libv8_libplatform.so ${pkgdir}/usr/lib/libv8_libplatform.so
+ install -Dm755 $OUTFLD/natives_blob.bin ${pkgdir}/usr/lib/v8/natives_blob.bin
+ install -Dm755 $OUTFLD/snapshot_blob.bin ${pkgdir}/usr/lib/v8/snapshot_blob.bin
+
install -Dm755 ${srcdir}/d8 ${pkgdir}/usr/bin/d8
# V8 has several header files and ideally if it had its own folder in /usr/include
diff --git a/icu59.diff b/icu59.diff
new file mode 100644
index 000000000000..59117a54dbe6
--- /dev/null
+++ b/icu59.diff
@@ -0,0 +1,28 @@
+diff --git a/src/i18n.cc b/src/i18n.cc
+index 79a70daf62..7a8d847034 100644
+--- a/src/i18n.cc
++++ b/src/i18n.cc
+@@ -28,7 +28,7 @@
+ #include "unicode/rbbi.h"
+ #include "unicode/smpdtfmt.h"
+ #include "unicode/timezone.h"
+-#include "unicode/uchar.h"
++#include "unicode/ustring.h"
+ #include "unicode/ucol.h"
+ #include "unicode/ucurr.h"
+ #include "unicode/unum.h"
+@@ -180,7 +180,13 @@ void SetResolvedDateSettings(Isolate* isolate,
+ icu::UnicodeString canonical_time_zone;
+ icu::TimeZone::getCanonicalID(time_zone, canonical_time_zone, status);
+ if (U_SUCCESS(status)) {
+- if (canonical_time_zone == UNICODE_STRING_SIMPLE("Etc/GMT")) {
++ // In CLDR (http://unicode.org/cldr/trac/ticket/9943), Etc/UTC is made
++ // a separate timezone ID from Etc/GMT even though they're still the same
++ // timezone. We'd not have "Etc/GMT" here because we canonicalize it and
++ // other GMT-variants to "UTC" in intl.js and "UTC" is turned to "Etc/UTC"
++ // by ICU before getting here.
++ DCHECK(canonical_time_zone != UNICODE_STRING_SIMPLE("Etc/GMT"));
++ if (canonical_time_zone == UNICODE_STRING_SIMPLE("Etc/UTC")) {
+ JSObject::SetProperty(
+ resolved, factory->NewStringFromStaticChars("timeZone"),
+ factory->NewStringFromStaticChars("UTC"), SLOPPY).Assert();