diff options
-rw-r--r-- | .SRCINFO | 10 | ||||
-rw-r--r-- | PKGBUILD | 86 | ||||
-rw-r--r-- | icu59.diff | 28 |
3 files changed, 105 insertions, 19 deletions
@@ -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 @@ -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(); |