The V8 port hasn't been updated since 2013 it seems. V8 is a very popular Javascript engine by Google. The latest stable release is v5.1 (April 23, 2016); but we still have lang/v8 v3.18.5 (April 30, 2013), and lang/v8-devel v3.27.7 (May 19, 2014) in FreeBSD ports. There have been *very* important improvements in between, including API changes and many performance and stability improvements on all platforms. Maybe lang/v8 should be at v5.1 and lang/v8-devel at v5.5 (or at least v8-devel should be at v5.1) Thank you very much.
The problem is the build structure, so someone needs to provide a patch for the update.
I think, maintainers of www/chromium or devel/electron4 can help with that. Current release of v8 uses gn build system, which is also used by chromium and electron.
FYI... https://groups.google.com/forum/#!topic/v8-users/EG0z7DXR7GA The 5.1 port referenced here fails with a gyp error, but maybe it's an easy fix.
I have a wip port: https://github.com/MikaelUrankar/v8-ports
Created attachment 215743 [details] patch
Created attachment 215746 [details] patch
Created attachment 215773 [details] patch
I have testbuilt in poudriere on cur-amd, cur-i386, 11.4-amd and it was fine. It somehow failed on 12.1 ?
https://people.freebsd.org/~pi/logs/v8-121.txt
(In reply to Kurt Jaeger from comment #9) It requires llvm10, I've uploaded the wrong patch :( https://github.com/MikaelUrankar/v8-ports/blob/master/files/patch-build_toolchain_gcc__toolchain.gni#L28
Created attachment 215995 [details] patch
(In reply to Mikael Urankar from comment #11) testbuilds@work
Thanks, built was fine on cur-a, cur-i, 12.1a and 11.4a.
Created attachment 216145 [details] patch 8.6.39 Only install llvm10 on 12.1 (11.4 and 13 already ship clang10 in base) Add cppgc include
testbuilds are fine after I added on pkg-plist line for: Error: Orphaned: include/cppgc/internal/caged-heap-local-data.h
Created attachment 216165 [details] v5
Created attachment 216175 [details] v6 add do-fetch put distfiles on freefall
testbuilds are fine, thanks!
Thanks, Mikael. I'll test it ASAP. BTW, lang/v8 should track the stable release (8.3) which is 8.3.110.13 now.
https://github.com/MikaelUrankar/v8-ports/tree/8.3
I also received a build error for lang/v8 after updating from FreeBSD 11.3 to FreeBSD 11.4. Could someone point me in the direction of applying this patch while using Poudriere. I have downloaded the files from Mikael and uploaded them to my server. I have tried a few different ways to implement this patch with Poudriere but all have failed. Any help is appreciated. Thanks!
You can do that: git clone -b 8.3 git@github.com:MikaelUrankar/v8-ports.git mv /usr/local/poudriere/ports/default/lang/v8 /usr/local/poudriere/ports/default/lang/v8.orig mv v8-ports /usr/local/poudriere/ports/default/lang/v8
Mikael, Thanks for the assistance. I was able to move the files to the necessary directory and began the build again. We then received a new error with the chromium-gn build. Poudriere output: [00:01:26] Failed ports: devel/chromium-gn:extract Reviewed logs and found "Write to restore size failed." at the end of nearly every line. Example: chromium-83.0.4103.116/storage/common/file_system/file_system_mount_option.h: Write to restore size failed chromium-83.0.4103.116/storage/common/file_system/OWNERS: Write to restore size failed Here was the output from the end of file: tar: Error exit delayed from previous errors. *** Error code 1 Stop. make: stopped in /usr/ports/devel/chromium-gn =>> Cleaning up wrkdir ===> Cleaning for chromium-gn-83.0.4103.116_1 build of devel/chromium-gn | chromium-gn-83.0.4103.116_1 ended at Mon Jul 27 13:35:24 CDT 2020 build time: 00:02:54 !!! build failure encountered !!! Here is the FreeBSD version and arch: Jail Version : 11.4-RELEASE-p1 amd64 Thanks again for the assistance.
(In reply to Ryan D from comment #23) Weird error, never saw that before, what filesystem / mount option do you use? Is it the only port failing?
Using the ZFS file system. It is the only port that fails. Once it fails, lang/v8 and databases/postgresql-plv8js is skipped due to its failing . There is plenty of space on the file system. Unsure which info you need about the mount options but here is the output relevant to mounting when running a Poudriere build. [00:00:01] Mounting system devices for freebsd_11-4x64-HEAD [00:00:01] Mounting ports/packages/distfiles [00:00:01] Stashing existing package repository [00:00:01] Mounting packages from: /usr/local/poudriere/data/packages/freebsd_11-4x64-HEAD This system is running on a bare metal server.
(In reply to Ryan D from comment #25) Can you try to untar the distfiles with archivers/gtar?
(In reply to Mikael Urankar from comment #26) This worked. I was able to untar the files in a test directory.
While trying the latest version from github, I'm getting this error during the patch phase: =========================================================================== =======================<phase: patch >============================ ===> Patching for v8-8.7.142 ===> Applying FreeBSD patches for v8-8.7.142 from /usr/ports/lang/v8/files /usr/bin/sed -i.bak "s|%%LOCALBASE%%|/usr/local|" /wrkdirs/usr/ports/lang/v8/work/v8-8.7.142/build/toolchain/gcc_toolchain.gni /wrkdirs/usr/ports/lang/v8/work/v8-8.7.142/buildtools/third_party/libc++/BUILD.gn make: exec(/wrkdirs/usr/ports/lang/v8/work/v8-8.7.142/buildtools/third_party/libc++/BUILD.gn) failed (Permission denied) *** Error code 1 Stop. make: stopped in /usr/ports/lang/v8 =>> Cleaning up wrkdir ===> Cleaning for v8-8.7.142 build of lang/v8 | v8-8.7.142 ended at Mon Nov 16 01:18:21 UTC 2020 build time: 00:00:10 !!! build failure encountered !!! During the patch phase, make should be trying to exec the patch utility, not buildtools/third_party/libc++/BUILD.gn (for which I do see a patch in files/), right? This is under poudriere with FreeBSD 12.2.
(In reply to j.david.lists from comment #28) sorry, there was a missing backslash, it's fixed (I've updated the port to the latest version)
(In reply to Mikael Urankar from comment #29) Looks good, it built cleanly. Really appreciate your efforts on this, and I hope it's able to get into the tree soon!
(In reply to j.david.lists from comment #30) +1 This removes a barrier to doing differential gene analysis with DESeq2 on FreeBSD. Why DESeq2 depends on a Javascript engine is a mystery to me, but it does, and it's one of the most essential tools in bioinformatics. I also know this is a challenging port and I hope upstream will accept some patches and suggestions to simplify things from here on.
A commit references this bug: Author: mikael Date: Fri Nov 20 10:41:21 UTC 2020 New revision: 555754 URL: https://svnweb.freebsd.org/changeset/ports/555754 Log: lang/v8: Update to 8.7.220.23 PR: 213202 Reported by: many Approved by: sunpoet (maintainer timeout) Changes: head/lang/v8/Makefile head/lang/v8/distinfo head/lang/v8/files/extra-patch-src-stub-cache.cc head/lang/v8/files/extrapatch-clang10 head/lang/v8/files/patch-CVE-2015-5380 head/lang/v8/files/patch-build_config_BUILD.gn head/lang/v8/files/patch-build_config_BUILDCONFIG.gn head/lang/v8/files/patch-build_config_compiler_BUILD.gn head/lang/v8/files/patch-build_config_compiler_compiler.gni head/lang/v8/files/patch-build_config_features.gni head/lang/v8/files/patch-build_config_freetype_freetype.gni head/lang/v8/files/patch-build_config_linux_BUILD.gn head/lang/v8/files/patch-build_config_linux_pkg-config.py head/lang/v8/files/patch-build_config_sysroot.gni head/lang/v8/files/patch-build_detect__host__arch.py head/lang/v8/files/patch-build_gn__run__binary.py head/lang/v8/files/patch-build_linux_chrome.map head/lang/v8/files/patch-build_linux_libpci_BUILD.gn head/lang/v8/files/patch-build_linux_unbundle_libusb.gn head/lang/v8/files/patch-build_linux_unbundle_replace__gn__files.py head/lang/v8/files/patch-build_toolchain_gcc__toolchain.gni head/lang/v8/files/patch-build_toolchain_get__concurrent__links.py head/lang/v8/files/patch-build_toolchain_linux_BUILD.gn head/lang/v8/files/patch-buildtools_third__party_libc++_BUILD.gn head/lang/v8/files/patch-src-checks.h head/lang/v8/files/patch-src-deoptimizer.cc head/lang/v8/files/patch-src-ia32-code-stubs-ia32.cc head/lang/v8/files/patch-src-ia32-disasm-ia32.cc head/lang/v8/files/patch-src-ia32-ic-ia32.cc head/lang/v8/files/patch-src-liveedit.cc head/lang/v8/files/patch-src-objects.h head/lang/v8/files/patch-src-x64-disasm-x64.cc head/lang/v8/files/patch-src-x64-ic-x64.cc head/lang/v8/files/patch-src_d8_d8-posix.cc head/lang/v8/files/patch-v8_BUILD.gn head/lang/v8/files/patch-v8_include_v8config.h head/lang/v8/files/patch-v8_src_api_api.cc head/lang/v8/files/patch-v8_src_base_cpu.cc head/lang/v8/files/patch-v8_src_base_platform_platform-freebsd.cc head/lang/v8/files/patch-v8_src_base_platform_platform-posix.cc head/lang/v8/files/v8.pc head/lang/v8/files/v8_libbase.pc head/lang/v8/files/v8_libplatform.pc head/lang/v8/pkg-plist