summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Marvin Garbuszus2019-09-22 13:01:10 +0200
committerJan Marvin Garbuszus2019-09-22 13:01:10 +0200
commitf8bd5cdef270e8669b34b115e1e575fbcd987460 (patch)
tree9051a4df2eaca0df68f32cb2d2f5d679319f3cba
downloadaur-f8bd5cdef270e8669b34b115e1e575fbcd987460.tar.gz
Initial AUR release
-rw-r--r--.SRCINFO35
-rw-r--r--.gitignore6
-rw-r--r--PKGBUILD155
-rw-r--r--d83
-rw-r--r--v8.pc11
-rw-r--r--v8_libbase.pc10
-rw-r--r--v8_libplatform.pc10
7 files changed, 230 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..71a8902da38e
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,35 @@
+pkgbase = v8-r
+ pkgdesc = Fast and modern Javascript engine used in Google Chrome.
+ pkgver = 7.9.81
+ pkgrel = 1
+ url = https://v8.dev
+ arch = x86_64
+ license = BSD
+ makedepends = clang
+ makedepends = clang-tools-extra
+ makedepends = lld
+ makedepends = llvm
+ makedepends = python2
+ makedepends = git
+ makedepends = wget
+ depends = icu
+ provides = v8
+ conflicts = v8
+ conflicts = v8-3.14
+ 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
+ sha256sums = SKIP
+ sha256sums = 3616bcfb15af7cd5a39bc0f223b2a52f15883a4bc8cfcfb291837c7421363d75
+ sha256sums = efb37bd706e6535abfa20c77bb16597253391619dae275627312d00ee7332fa3
+ sha256sums = ae23d543f655b4d8449f98828d0aff6858a777429b9ebdd2e23541f89645d4eb
+ sha256sums = 6abb07ab1cf593067d19028f385bd7ee52196fc644e315c388f08294d82ceff0
+
+pkgname = v8-r
+
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..0cd8c00460d3
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,6 @@
+src/
+pkg/
+depot_tools/
+gyp/
+.SRCINFO
+v8-*pkg.tar.xz
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..6365f16ab195
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,155 @@
+# Maintainer: Jan Marvin Garbuszus <jan.garbuszus@rub.de>
+# Contributor: Marco Pompili <aur (at) mg.odd.red>
+# 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>
+
+pkgname=v8-r
+pkgver=7.9.81
+pkgrel=1
+pkgdesc="Fast and modern Javascript engine used in Google Chrome."
+arch=('x86_64')
+url="https://v8.dev"
+license=('BSD')
+depends=('icu')
+optional=('rlwrap')
+makedepends=('clang' 'clang-tools-extra' 'lld' 'llvm' 'python2' 'git' 'wget')
+conflicts=('v8' 'v8-3.14' 'v8-3.15' 'v8-3.20' 'v8-static-gyp' 'v8-static-gyp-5.4')
+provides=('v8')
+source=("depot_tools::git+https://chromium.googlesource.com/chromium/tools/depot_tools.git"
+ "v8.pc"
+ "v8_libbase.pc"
+ "v8_libplatform.pc"
+ "d8")
+sha256sums=('SKIP'
+ '3616bcfb15af7cd5a39bc0f223b2a52f15883a4bc8cfcfb291837c7421363d75'
+ 'efb37bd706e6535abfa20c77bb16597253391619dae275627312d00ee7332fa3'
+ 'ae23d543f655b4d8449f98828d0aff6858a777429b9ebdd2e23541f89645d4eb'
+ '6abb07ab1cf593067d19028f385bd7ee52196fc644e315c388f08294d82ceff0')
+
+OUTFLD=out.gn/Release
+
+prepare() {
+
+ export CC=/usr/bin/clang
+ export CXX=/usr/bin/clang++
+
+ # Switching to python2 system environment
+ mkdir -p bin
+ ln -sf /usr/bin/python2 ./bin/python
+ ln -sf /usr/bin/python2-config ./bin/python-config
+ msg2 "Using: `which python`"
+
+ export PATH=${srcdir}/bin:`pwd`/depot_tools:"$PATH"
+ export GYP_GENERATORS=ninja
+
+ if [ ! -d "v8" ]; then
+ msg2 "Fetching V8 code"
+ yes | fetch v8
+ fi
+
+ cd $srcdir/v8
+
+ msg2 "Reset repository"
+ git reset --hard
+
+ if [ -f third_party/icu/BUILD.gn.orig ]
+ then
+ msg2 "Restoring bundled ICU build files for syncing"
+ $srcdir/v8/build/linux/unbundle/replace_gn_files.py --undo --system-libraries icu
+ fi
+
+ msg2 "Syncing, this can take a while..."
+ $srcdir/depot_tools/gclient sync -D --force --reset
+ $srcdir/depot_tools/gclient sync --revision ${pkgver}
+
+ msg2 "Using system libraries for ICU"
+ $srcdir/v8/build/linux/unbundle/replace_gn_files.py --system-libraries icu
+
+ 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"
+
+ msg2 "Running GN..."
+ $srcdir/depot_tools/gn gen $OUTFLD \
+ -vv --fail-on-unused-args \
+ --args='clang_base_path="/usr/"
+ is_clang=true
+ is_asan=false
+ clang_use_chrome_plugins=false
+ is_component_build=true
+ is_debug=false
+ is_official_build=false
+ treat_warnings_as_errors=false
+ v8_enable_i18n_support=true
+ v8_use_external_startup_data=false
+ use_custom_libcxx=false
+ linux_use_bundled_binutils=false
+ use_sysroot=false'
+}
+
+build() {
+ cd $srcdir/v8
+
+ # 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/"
+
+ msg2 "Building, this will take a while..."
+ ninja -C $OUTFLD
+}
+
+check() {
+ cd $srcdir/v8
+
+ msg2 "Testing, this will also take a while..."
+ tools/run-tests.py --no-presubmit \
+ --outdir=out.gn \
+ --buildbot \
+ --arch="x64" \
+ --mode=Release || true
+}
+
+package() {
+ cd $srcdir/v8
+
+ install -d ${pkgdir}/usr/lib/v8
+
+ install -Dm755 $OUTFLD/cctest ${pkgdir}/usr/lib/v8/cctest
+ install -Dm755 $OUTFLD/d8 ${pkgdir}/usr/lib/v8/d8
+
+ # install -Dm755 $OUTFLD/libv8_for_testing.so ${pkgdir}/usr/lib/libv8_for_testing.so
+ 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/libv8.so ${pkgdir}/usr/lib/libv8.so
+
+ install -Dm755 ${srcdir}/d8 ${pkgdir}/usr/bin/d8
+
+ # V8 has several header files and ideally if it had its own folder in /usr/include
+ # But doing it here will break all users. Ideally if they use provided pkgconfig file.
+ install -d ${pkgdir}/usr/include
+ install -Dm644 include/*.h ${pkgdir}/usr/include
+
+ install -d ${pkgdir}/usr/include/libplatform
+ install -Dm644 include/libplatform/*.h ${pkgdir}/usr/include/libplatform
+
+ install -d ${pkgdir}/usr/lib/pkgconfig
+ install -m644 $srcdir/v8.pc ${pkgdir}/usr/lib/pkgconfig
+ install -m644 $srcdir/v8_libbase.pc ${pkgdir}/usr/lib/pkgconfig
+ install -m644 $srcdir/v8_libplatform.pc ${pkgdir}/usr/lib/pkgconfig
+
+ install -d ${pkgdir}/usr/share/licenses/v8
+ install -m644 LICENSE* ${pkgdir}/usr/share/licenses/v8
+
+ cd $srcdir
+ if [ -d "bin" ]; then
+ msg2 "cleanup leftover python binaries"
+ rm -rf "bin"
+ fi
+
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/d8 b/d8
new file mode 100644
index 000000000000..d5f0ff1f699e
--- /dev/null
+++ b/d8
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec /usr/lib/v8/d8 "$@"
diff --git a/v8.pc b/v8.pc
new file mode 100644
index 000000000000..e839e566903c
--- /dev/null
+++ b/v8.pc
@@ -0,0 +1,11 @@
+prefix=/usr
+exec_prefix=${prefix}
+libdir=/usr/lib
+includedir=${prefix}/include
+
+Name: v8
+Description: V8 JavaScript Engine
+Version: @VERSION@
+Requires: icu-uc, icu-i18n, v8_libbase = @VERSION@
+Libs: -L${libdir} -lv8 -pthread
+Cflags: -I${includedir}
diff --git a/v8_libbase.pc b/v8_libbase.pc
new file mode 100644
index 000000000000..64c9503c00d8
--- /dev/null
+++ b/v8_libbase.pc
@@ -0,0 +1,10 @@
+prefix=/usr
+exec_prefix=${prefix}
+libdir=/usr/lib
+includedir=${prefix}/include
+
+Name: v8
+Description: V8 JavaScript Engine - Base library
+Version: @VERSION@
+Libs: -L${libdir} -lv8_libbase
+Cflags: -I${includedir}
diff --git a/v8_libplatform.pc b/v8_libplatform.pc
new file mode 100644
index 000000000000..54c697a197db
--- /dev/null
+++ b/v8_libplatform.pc
@@ -0,0 +1,10 @@
+prefix=/usr
+exec_prefix=${prefix}
+libdir=/usr/lib
+includedir=${prefix}/include
+
+Name: v8
+Description: V8 JavaScript Engine - Platform library
+Version: @VERSION@
+Libs: -L${libdir} -lv8_libplatform -pthread
+Cflags: -I${includedir}